diff --git a/.drone.yml b/.drone.yml index 1b156eb..f3782a7 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,89 +1,47 @@ --- kind: pipeline type: docker -name: cleanup-before +name: build-linux-amd64 -steps: - - name: clean - image: alpine - commands: - - rm -rf /build/* - volumes: - - name: build - path: /build - when: - event: tag - -volumes: - - name: build - host: - path: /tmp/fuelprices/build - ---- -kind: pipeline -type: docker -name: default-linux-amd64 +environment: + GOOS: linux + GOARCH: amd64 + GOOPTIONS: -mod=vendor + SRCFILES: cmd/fuelprices/*.go + PROJECTNAME: fuelprices steps: - name: build image: golang commands: - - ./ci-build.sh build - environment: - GOOS: linux - GOARCH: amd64 - volumes: - - name: build - path: /build - -volumes: - - name: build - host: - path: /tmp/fuelprices/build - -depends_on: - - cleanup-before + - go build -o $PROJECTNAME $GOOPTIONS $SRCFILES + when: + event: + exclude: + - tag --- kind: pipeline type: docker -name: default-linux-arm64 +name: gitea-release-linux-amd64 + +environment: + GOOS: linux + GOARCH: amd64 + GOOPTIONS: -mod=vendor + SRCFILES: cmd/fuelprices/*.go + PROJECTNAME: fuelprices steps: - name: build image: golang commands: - - ./ci-build.sh build - environment: - GOOS: linux - GOARCH: arm64 - volumes: - - name: build - path: /build - -volumes: - - name: build - host: - path: /tmp/fuelprices/build - -depends_on: - - cleanup-before - ---- -kind: pipeline -type: docker -name: gitea-release - -steps: - - name: move - image: alpine - commands: - - mv build/* ./ - volumes: - - name: build - path: /drone/src/build + - go build -o $PROJECTNAME $GOOPTIONS $SRCFILES + - tar -czvf $PROJECTNAME-$DRONE_TAG-$GOOS-$GOARCH.tar.gz $PROJECTNAME + - echo $PROJECTNAME $DRONE_TAG > VERSION when: - event: tag + event: + - tag - name: release image: plugins/gitea-release settings: @@ -95,50 +53,6 @@ steps: - sha256 - sha512 title: VERSION - volumes: - - name: build - path: /drone/src/build when: - event: tag - - name: ls - image: alpine - commands: - - find . - volumes: - - name: build - path: /drone/src/build - when: - event: tag - -volumes: - - name: build - host: - path: /tmp/fuelprices/build - -depends_on: - - default-linux-amd64 - - default-linux-arm64 - ---- -kind: pipeline -type: docker -name: cleanup-after - -steps: - - name: clean - image: alpine - commands: - - rm -rf /build/* - volumes: - - name: build - path: /build - when: - event: tag - -volumes: - - name: build - host: - path: /tmp/fuelprices/build - -depends_on: - - gitea-release + event: + - tag diff --git a/go.mod b/go.mod index 50fd3c2..b7361a3 100644 --- a/go.mod +++ b/go.mod @@ -3,12 +3,12 @@ module git.paulbsd.com/paulbsd/fuelprices go 1.17 require ( - github.com/antchfx/xmlquery v1.3.8 + github.com/antchfx/xmlquery v1.3.10 github.com/antchfx/xpath v1.2.0 // indirect - github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab - golang.org/x/net v0.0.0-20211203184738-4852103109b8 // indirect + github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c + golang.org/x/net v0.0.0-20220325170049-de3da57026de // indirect golang.org/x/text v0.3.7 // indirect - gopkg.in/ini.v1 v1.66.2 + gopkg.in/ini.v1 v1.66.4 ) require ( diff --git a/go.sum b/go.sum index 63d46cb..6696507 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ github.com/antchfx/xmlquery v1.3.8 h1:dRnBQM3Vk5BVJFvFwsHOLAox+mEiNw5ZusaUNCrEdoU= github.com/antchfx/xmlquery v1.3.8/go.mod h1:wojC/BxjEkjJt6dPiAqUzoXO5nIMWtxHS8PD8TmN4ks= +github.com/antchfx/xmlquery v1.3.10 h1:U2yMwr8U0KmGM2iDG2Ky/3LfxNsiK4uw1bSBkeMO9+g= +github.com/antchfx/xmlquery v1.3.10/go.mod h1:wojC/BxjEkjJt6dPiAqUzoXO5nIMWtxHS8PD8TmN4ks= github.com/antchfx/xpath v1.2.0 h1:mbwv7co+x0RwgeGAOHdrKy89GvHaGvxxBtPK0uF9Zr8= github.com/antchfx/xpath v1.2.0/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -10,6 +12,8 @@ github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab h1:HqW4xhhynfjrtEiiSGcQUd6vrK23iMam1FO8rI7mwig= github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c h1:qSHzRbhzK8RdXOsAdfDgO49TtqC1oZ+acxPrkfTxcCs= +github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -21,6 +25,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20211203184738-4852103109b8 h1:PFkPt/jI9Del3hmFplBtRp8tDhSRpFu7CyRs7VmEC0M= golang.org/x/net v0.0.0-20211203184738-4852103109b8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220325170049-de3da57026de h1:pZB1TWnKi+o4bENlbzAgLrEbY4RMYmUIRobMcSmfeYc= +golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -35,6 +41,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI= gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4= +gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/vendor/github.com/antchfx/xmlquery/README.md b/vendor/github.com/antchfx/xmlquery/README.md index bae7fc3..f9f7a3f 100644 --- a/vendor/github.com/antchfx/xmlquery/README.md +++ b/vendor/github.com/antchfx/xmlquery/README.md @@ -15,26 +15,13 @@ data or evaluate from XML documents with an XPath expression. XPATH query strings. Enabling caching can avoid recompile XPath expression for each query. -Change Logs -=== +You can visit this page to learn about the supported XPath(1.0/2.0) syntax. https://github.com/antchfx/xpath -2020-08-?? -- Add XML stream loading and parsing support. +[htmlquery](https://github.com/antchfx/htmlquery) - Package for the HTML document query. -2019-11-11 -- Add XPath query caching. +[xmlquery](https://github.com/antchfx/xmlquery) - Package for the XML document query. -2019-10-05 -- Add new methods compatible with invalid XPath expression error: `QueryAll` and `Query`. -- Add `QuerySelector` and `QuerySelectorAll` methods, support for reused query objects. -- PR [#12](https://github.com/antchfx/xmlquery/pull/12) (Thanks @FrancescoIlario) -- PR [#11](https://github.com/antchfx/xmlquery/pull/11) (Thanks @gjvnq) - -2018-12-23 -- Added XML output including comment nodes. [#9](https://github.com/antchfx/xmlquery/issues/9) - -2018-12-03 -- Added support to attribute name with namespace prefix and XML output. [#6](https://github.com/antchfx/xmlquery/issues/6) +[jsonquery](https://github.com/antchfx/jsonquery) - Package for the JSON document query. Installation ==== @@ -42,6 +29,52 @@ Installation $ go get github.com/antchfx/xmlquery ``` + +Quick Starts +=== + +```go +import ( + "github.com/antchfx/xmlquery" +) + +func main(){ + s := ` + + + W3Schools Home Page + https://www.w3schools.com + Free web building tutorials + + RSS Tutorial + https://www.w3schools.com/xml/xml_rss.asp + New RSS tutorial on W3Schools + + + XML Tutorial + https://www.w3schools.com/xml + New XML tutorial on W3Schools + + +` + + doc, err := xmlquery.Parse(strings.NewReader(s)) + if err != nil { + panic(err) + } + channel := xmlquery.FindOne(doc, "//channel") + if n := channel.SelectElement("title"); n != nil { + fmt.Printf("title: %s\n", n.InnerText()) + } + if n := channel.SelectElement("link"); n != nil { + fmt.Printf("link: %s\n", n.InnerText()) + } + for i, n := range xmlquery.Find(doc, "//item/title") { + fmt.Printf("#%d %s\n", i, n.InnerText()) + } +} +``` + Getting Started === @@ -204,59 +237,6 @@ fmt.Println(doc.OutputXML(true)) // W3Schools Home Page ``` -Quick Tutorial -=== - -```go -import ( - "github.com/antchfx/xmlquery" -) - -func main(){ - s := ` - - - W3Schools Home Page - https://www.w3schools.com - Free web building tutorials - - RSS Tutorial - https://www.w3schools.com/xml/xml_rss.asp - New RSS tutorial on W3Schools - - - XML Tutorial - https://www.w3schools.com/xml - New XML tutorial on W3Schools - - -` - - doc, err := xmlquery.Parse(strings.NewReader(s)) - if err != nil { - panic(err) - } - channel := xmlquery.FindOne(doc, "//channel") - if n := channel.SelectElement("title"); n != nil { - fmt.Printf("title: %s\n", n.InnerText()) - } - if n := channel.SelectElement("link"); n != nil { - fmt.Printf("link: %s\n", n.InnerText()) - } - for i, n := range xmlquery.Find(doc, "//item/title") { - fmt.Printf("#%d %s\n", i, n.InnerText()) - } -} -``` - -List of supported XPath query packages -=== -| Name | Description | -| ------------------------------------------------- | ----------------------------------------- | -| [htmlquery](https://github.com/antchfx/htmlquery) | XPath query package for HTML documents | -| [xmlquery](https://github.com/antchfx/xmlquery) | XPath query package for XML documents | -| [jsonquery](https://github.com/antchfx/jsonquery) | XPath query package for JSON documents | - - Questions +Questions === Please let me know if you have any questions diff --git a/vendor/github.com/antchfx/xmlquery/node.go b/vendor/github.com/antchfx/xmlquery/node.go index be6e31a..4643695 100644 --- a/vendor/github.com/antchfx/xmlquery/node.go +++ b/vendor/github.com/antchfx/xmlquery/node.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/xml" "fmt" + "html" "strings" ) @@ -89,7 +90,7 @@ func outputXML(buf *bytes.Buffer, n *Node, preserveSpaces bool) { preserveSpaces = calculatePreserveSpaces(n, preserveSpaces) switch n.Type { case TextNode: - xml.EscapeText(buf, []byte(n.sanitizedData(preserveSpaces))) + buf.WriteString(html.EscapeString(n.sanitizedData(preserveSpaces))) return case CharDataNode: buf.WriteString(" p.prev.level { AddChild(p.prev, node) + } else if p.level < p.prev.level { + for i := p.prev.level - p.level; i > 1; i-- { + p.prev = p.prev.Parent + } + AddSibling(p.prev.Parent, node) } p.prev = node case xml.Directive: @@ -307,7 +312,7 @@ type StreamParser struct { // streamElementFilter, if provided, cannot be successfully parsed and compiled // into a valid xpath query. func CreateStreamParser(r io.Reader, streamElementXPath string, streamElementFilter ...string) (*StreamParser, error) { - return CreateStreamParserWithOptions(r, ParserOptions{}, streamElementXPath, streamElementFilter...) + return CreateStreamParserWithOptions(r, ParserOptions{}, streamElementXPath, streamElementFilter...) } // CreateStreamParserWithOptions is like CreateStreamParser, but with custom options diff --git a/vendor/github.com/influxdata/influxdb1-client/v2/client.go b/vendor/github.com/influxdata/influxdb1-client/v2/client.go index ddd0b48..35252fa 100644 --- a/vendor/github.com/influxdata/influxdb1-client/v2/client.go +++ b/vendor/github.com/influxdata/influxdb1-client/v2/client.go @@ -556,7 +556,10 @@ func (c *client) Query(q Query) (*Response, error) { if err != nil { return nil, err } - defer resp.Body.Close() + defer func() { + io.Copy(ioutil.Discard, resp.Body) // https://github.com/influxdata/influxdb1-client/issues/58 + resp.Body.Close() + }() if err := checkResponse(resp); err != nil { return nil, err diff --git a/vendor/gopkg.in/ini.v1/.editorconfig b/vendor/gopkg.in/ini.v1/.editorconfig new file mode 100644 index 0000000..4a2d918 --- /dev/null +++ b/vendor/gopkg.in/ini.v1/.editorconfig @@ -0,0 +1,12 @@ +# http://editorconfig.org + +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*_test.go] +trim_trailing_whitespace = false diff --git a/vendor/gopkg.in/ini.v1/.gitignore b/vendor/gopkg.in/ini.v1/.gitignore index 1241112..588388b 100644 --- a/vendor/gopkg.in/ini.v1/.gitignore +++ b/vendor/gopkg.in/ini.v1/.gitignore @@ -4,3 +4,4 @@ ini.sublime-workspace testdata/conf_reflect.ini .idea /.vscode +.DS_Store diff --git a/vendor/gopkg.in/ini.v1/file.go b/vendor/gopkg.in/ini.v1/file.go index 7b4e560..9d91c31 100644 --- a/vendor/gopkg.in/ini.v1/file.go +++ b/vendor/gopkg.in/ini.v1/file.go @@ -442,16 +442,16 @@ func (f *File) writeToBuffer(indent string) (*bytes.Buffer, error) { kname = `"""` + kname + `"""` } - for _, val := range key.ValueWithShadows() { + writeKeyValue := func(val string) (bool, error) { if _, err := buf.WriteString(kname); err != nil { - return nil, err + return false, err } if key.isBooleanType { if kname != sec.keyList[len(sec.keyList)-1] { buf.WriteString(LineBreak) } - continue KeyList + return true, nil } // Write out alignment spaces before "=" sign @@ -468,10 +468,27 @@ func (f *File) writeToBuffer(indent string) (*bytes.Buffer, error) { val = `"` + val + `"` } if _, err := buf.WriteString(equalSign + val + LineBreak); err != nil { + return false, err + } + return false, nil + } + + shadows := key.ValueWithShadows() + if len(shadows) == 0 { + if _, err := writeKeyValue(""); err != nil { return nil, err } } + for _, val := range shadows { + exitLoop, err := writeKeyValue(val) + if err != nil { + return nil, err + } else if exitLoop { + continue KeyList + } + } + for _, val := range key.nestedValues { if _, err := buf.WriteString(indent + " " + val + LineBreak); err != nil { return nil, err diff --git a/vendor/gopkg.in/ini.v1/key.go b/vendor/gopkg.in/ini.v1/key.go index 0302c29..a19d9f3 100644 --- a/vendor/gopkg.in/ini.v1/key.go +++ b/vendor/gopkg.in/ini.v1/key.go @@ -110,15 +110,24 @@ func (k *Key) Value() string { return k.value } -// ValueWithShadows returns raw values of key and its shadows if any. +// ValueWithShadows returns raw values of key and its shadows if any. Shadow +// keys with empty values are ignored from the returned list. func (k *Key) ValueWithShadows() []string { if len(k.shadows) == 0 { + if k.value == "" { + return []string{} + } return []string{k.value} } - vals := make([]string, len(k.shadows)+1) - vals[0] = k.value - for i := range k.shadows { - vals[i+1] = k.shadows[i].value + + vals := make([]string, 0, len(k.shadows)+1) + if k.value != "" { + vals = append(vals, k.value) + } + for _, s := range k.shadows { + if s.value != "" { + vals = append(vals, s.value) + } } return vals } diff --git a/vendor/modules.txt b/vendor/modules.txt index 679a2ab..b300495 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,4 +1,4 @@ -# github.com/antchfx/xmlquery v1.3.8 +# github.com/antchfx/xmlquery v1.3.10 ## explicit; go 1.14 github.com/antchfx/xmlquery # github.com/antchfx/xpath v1.2.0 @@ -9,14 +9,14 @@ github.com/antchfx/xpath # github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da ## explicit github.com/golang/groupcache/lru -# github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab +# github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c ## explicit github.com/influxdata/influxdb1-client/models github.com/influxdata/influxdb1-client/pkg/escape github.com/influxdata/influxdb1-client/v2 # github.com/stretchr/testify v1.7.0 ## explicit; go 1.13 -# golang.org/x/net v0.0.0-20211203184738-4852103109b8 +# golang.org/x/net v0.0.0-20220325170049-de3da57026de ## explicit; go 1.17 golang.org/x/net/html golang.org/x/net/html/atom @@ -40,7 +40,7 @@ golang.org/x/text/internal/utf8internal golang.org/x/text/language golang.org/x/text/runes golang.org/x/text/transform -# gopkg.in/ini.v1 v1.66.2 +# gopkg.in/ini.v1 v1.66.4 ## explicit gopkg.in/ini.v1 # gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b