diff --git a/.circleci/config.yml b/.circleci/config.yml index 8316de8..180a81c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,18 +2,18 @@ version: 2 jobs: build: docker: - - image: circleci/golang:1.10 + - image: circleci/golang:1.16 working_directory: /go/src/github.com/bitnami/ini-file steps: - checkout - run: make get-build-deps - - run: make dep-ensure + - run: make download - run: make vet - run: make lint - run: make cover - - run: make build - - run: make build/arm64 + - run: make build TOOL_PATH=out/ini-file + - run: make build/arm64 TOOL_PATH=out/arm64/ini-file - store_artifacts: path: /go/src/github.com/bitnami/ini-file/out/ini-file destination: ini-file diff --git a/Dockerfile b/Dockerfile index 45b2e7e..c7ac169 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,20 +5,15 @@ # docker run --rm -it -v /tmp:/tmp bitnami/ini-file del -k "title" -s "My book" /tmp/my.ini # -FROM golang:1.10-stretch as build +FROM golang:1.16-stretch as build RUN apt-get update && apt-get install -y --no-install-recommends \ git make upx \ && rm -rf /var/lib/apt/lists/* -RUN wget -q -O dep https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 && \ - echo '287b08291e14f1fae8ba44374b26a2b12eb941af3497ed0ca649253e21ba2f83 dep' | sha256sum -c - && \ - mv dep /usr/bin/ && chmod +x /usr/bin/dep - RUN go get -u \ - github.com/golang/lint/golint \ + golang.org/x/lint/golint \ golang.org/x/tools/cmd/goimports \ - github.com/golang/dep/cmd/dep \ && rm -rf $GOPATH/src/* && rm -rf $GOPATH/pkg/* diff --git a/Gopkg.lock b/Gopkg.lock deleted file mode 100644 index 542505b..0000000 --- a/Gopkg.lock +++ /dev/null @@ -1,84 +0,0 @@ -# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. - - -[[projects]] - digest = "1:4f26b492ee1d33cb858398a6cc73b0a93b5aee23c8673332d0184f7b092d502e" - name = "github.com/bitnami/gonit" - packages = ["testutils"] - pruneopts = "UT" - revision = "ada6b6e57bdf28b60690870625050534a72f4791" - version = "v0.2.0" - -[[projects]] - digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec" - name = "github.com/davecgh/go-spew" - packages = ["spew"] - pruneopts = "UT" - revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" - version = "v1.1.1" - -[[projects]] - branch = "master" - digest = "1:b78a58e00a1b951af4803ddfefbbcae14c7cacce3940ebad359c9d5582bf74a0" - name = "github.com/dchest/safefile" - packages = ["."] - pruneopts = "UT" - revision = "855e8d98f1852d48dde521e0522408d1fe7e836a" - -[[projects]] - digest = "1:3417a5d11889cd6649cad66e05b7104e0937839ab23a6c4803fddf7f1e4fc412" - name = "github.com/go-ini/ini" - packages = ["."] - pruneopts = "UT" - revision = "5e9692864e22d02ac79e2fa499cffb00520b4fea" - version = "v1.34.0" - -[[projects]] - digest = "1:a2cff208d4759f6ba1b1cd228587b0a1869f95f22542ec9cd17fff64430113c7" - name = "github.com/jessevdk/go-flags" - packages = ["."] - pruneopts = "UT" - revision = "c6ca198ec95c841fdb89fc0de7496fed11ab854e" - version = "v1.4.0" - -[[projects]] - branch = "master" - digest = "1:8f9f29b2eb34c6e07d08322ba2471fce2296b98b88a695afbe5cfc20e16a801d" - name = "github.com/juamedgod/cliassert" - packages = ["."] - pruneopts = "UT" - revision = "425256f2bb0b859cff5eec2b14ceddb9182303c9" - -[[projects]] - digest = "1:0028cb19b2e4c3112225cd871870f2d9cf49b9b4276531f03438a88e94be86fe" - name = "github.com/pmezard/go-difflib" - packages = ["difflib"] - pruneopts = "UT" - revision = "792786c7400a136282c1664665ae0a8db921c6c2" - version = "v1.0.0" - -[[projects]] - digest = "1:c40d65817cdd41fac9aa7af8bed56927bb2d6d47e4fea566a74880f5c2b1c41e" - name = "github.com/stretchr/testify" - packages = [ - "assert", - "require", - ] - pruneopts = "UT" - revision = "f35b8ab0b5a2cef36673838d662e249dd9c94686" - version = "v1.2.2" - -[solve-meta] - analyzer-name = "dep" - analyzer-version = 1 - input-imports = [ - "github.com/bitnami/gonit/testutils", - "github.com/dchest/safefile", - "github.com/go-ini/ini", - "github.com/jessevdk/go-flags", - "github.com/juamedgod/cliassert", - "github.com/stretchr/testify/assert", - "github.com/stretchr/testify/require", - ] - solver-name = "gps-cdcl" - solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml deleted file mode 100644 index 7270707..0000000 --- a/Gopkg.toml +++ /dev/null @@ -1,35 +0,0 @@ -# Gopkg.toml example -# -# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md -# for detailed Gopkg.toml documentation. -# -# required = ["github.com/user/thing/cmd/thing"] -# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] -# -# [[constraint]] -# name = "github.com/user/project" -# version = "1.0.0" -# -# [[constraint]] -# name = "github.com/user/project2" -# branch = "dev" -# source = "github.com/myfork/project2" -# -# [[override]] -# name = "github.com/x/y" -# version = "2.4.0" -# -# [prune] -# non-go = false -# go-tests = true -# unused-packages = true - - -[[constraint]] - name = "github.com/jessevdk/go-flags" - version = "1.3.0" - - -[prune] - go-tests = true - unused-packages = true diff --git a/Makefile b/Makefile index 83b8681..6f10f21 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all build clean dep-ensure get-build-deps vet lint get-deps test cover +.PHONY: all build clean download get-build-deps vet lint get-deps test cover TOOL_NAME := ini-file @@ -9,29 +9,29 @@ include ./vars.mk all: @$(MAKE) get-build-deps - $(DEP_ENSURE) -vendor-only + @$(MAKE) download @$(MAKE) vet @$(MAKE) lint @$(MAKE) cover @$(MAKE) build -build: - @go build -ldflags="-s -w" -o $(TOOL_PATH) +build/%: + @echo "Building GOARCH=$(*F)" + @GOARCH=$(*F) go build -ldflags=$(LDFLAGS) -o $(TOOL_PATH) + @echo "*** Binary created under $(TOOL_PATH) ***" -build/arm64: - @GOARCH=arm64 go build -ldflags="-s -w" -o $(BUILD_DIR)/arm64/$(TOOL_NAME) +build: build/amd64 clean: @rm -rf $(BUILD_DIR) -dep-ensure: - $(DEP_ENSURE) +download: + $(GO_MOD) download get-build-deps: @echo "+ Downloading build dependencies" @go get golang.org/x/tools/cmd/goimports - @go get github.com/golang/lint/golint - @go get -u github.com/golang/dep/cmd/dep + @go get golang.org/x/lint/golint vet: @echo "+ Vet" diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..c6902de --- /dev/null +++ b/go.mod @@ -0,0 +1,16 @@ +module github.com/bitnami/ini-file + +go 1.16 + +require ( + github.com/bitnami/gonit v0.2.0 + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/go-ini/ini v1.62.0 + github.com/jessevdk/go-flags v1.5.0 + github.com/juamedgod/cliassert v0.0.0-20180320011200-425256f2bb0b + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/smartystreets/goconvey v1.6.4 // indirect + github.com/stretchr/testify v1.2.2 + golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c // indirect + gopkg.in/ini.v1 v1.62.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..2e4d206 --- /dev/null +++ b/go.sum @@ -0,0 +1,32 @@ +github.com/bitnami/gonit v0.2.0 h1:qrza7cn2/YmX47SCIBKShqtupSNX4KSwaQJL698s2WU= +github.com/bitnami/gonit v0.2.0/go.mod h1:rWUClL7qwHeUIIP7SkokjfvE3RonglnANqJtzUpyHyU= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU= +github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc= +github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/juamedgod/cliassert v0.0.0-20180320011200-425256f2bb0b h1:j2GwaFh0vduPA3PilmBcsdWv0reobJHyIxGJnh9gIAA= +github.com/juamedgod/cliassert v0.0.0-20180320011200-425256f2bb0b/go.mod h1:+N11eVKRhj1RNqjc9l+QMib0/XYixFOywXFH1zoGucg= +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/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c h1:F1jZWGFhYfh0Ci55sIpILtKKK8p3i2/krTr0H1rg74I= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= +gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= diff --git a/vars.mk b/vars.mk index 46bb5ad..c754479 100644 --- a/vars.mk +++ b/vars.mk @@ -4,7 +4,11 @@ PATH := $(GOPATH)/bin:$(PATH) BUILD_DIR := $(abspath ./out) TOOL_NAME ?= $(shell basename $(CURDIR)) -TOOL_PATH := $(BUILD_DIR)/$(TOOL_NAME) +TOOL_PATH ?= $(BUILD_DIR)/$(TOOL_NAME) + +BUILD_DATE := $(shell date -u '+%Y-%m-%d %I:%M:%S UTC' 2> /dev/null) +GIT_HASH := $(shell git rev-parse HEAD 2> /dev/null) +LDFLAGS="'main.buildDate=$(BUILD_DATE)' -X main.commit=$(GIT_HASH) -s -w" DEBUG ?= 0 @@ -14,7 +18,7 @@ else GO_TEST := @go test endif -DEP_ENSURE := @dep ensure +GO_MOD := @go mod # Do not do goimport of the vendor dir go_files=$$(find $(1) -type f -name '*.go' -not -path "./vendor/*") fmtcheck = @if goimports -l $(go_files) | read var; then echo "goimports check failed for $(1):\n `goimports -d $(go_files)`"; exit 1; fi