From 28fd36e0abafe485dbb0a2d7c19178daa763657a Mon Sep 17 00:00:00 2001 From: sapcc-bot Date: Thu, 28 Nov 2024 17:31:51 +0000 Subject: [PATCH] Run go-makefile-maker --- Makefile | 60 +++++++++++++++++++++++-------------- testing/with-postgres-db.sh | 2 ++ 2 files changed, 39 insertions(+), 23 deletions(-) diff --git a/Makefile b/Makefile index f248b6a7d..2843c8835 100644 --- a/Makefile +++ b/Makefile @@ -17,11 +17,17 @@ default: build-all copy-fixtures: find -name '*.actual' | xargs -I{} bash -c 'mv {} $$(echo {} | sed "s/.actual//g")' -prepare-static-check: FORCE +install-golangci-lint: FORCE @if ! hash golangci-lint 2>/dev/null; then printf "\e[1;36m>> Installing golangci-lint (this may take a while)...\e[0m\n"; go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest; fi + +install-go-licence-detector: FORCE @if ! hash go-licence-detector 2>/dev/null; then printf "\e[1;36m>> Installing go-licence-detector...\e[0m\n"; go install go.elastic.co/go-licence-detector@latest; fi + +install-addlicense: FORCE @if ! hash addlicense 2>/dev/null; then printf "\e[1;36m>> Installing addlicense...\e[0m\n"; go install github.com/google/addlicense@latest; fi +prepare-static-check: FORCE install-golangci-lint install-go-licence-detector install-addlicense + GO_BUILDFLAGS = -mod vendor GO_LDFLAGS = GO_TESTENV = @@ -64,7 +70,7 @@ comma := , check: FORCE static-check build/cover.html build-all @printf "\e[1;32m>> All checks successful.\e[0m\n" -run-golangci-lint: FORCE prepare-static-check +run-golangci-lint: FORCE install-golangci-lint @printf "\e[1;36m>> golangci-lint\e[0m\n" @golangci-lint run @@ -91,15 +97,19 @@ vendor-compat: FORCE go mod vendor go mod verify -license-headers: FORCE prepare-static-check +force-license-headers: FORCE install-addlicense + @printf "\e[1;36m>> addlicense\e[0m\n" + echo -n $(patsubst $(shell awk '$$1 == "module" {print $$2}' go.mod)%,.%/*.go,$(shell go list ./...)) | xargs -d" " -I{} bash -c 'year="$$(rg -P "Copyright (....) SAP SE" -Nor "\$$1" {})"; awk -i inplace '"'"'{if (display) {print} else {!/^\/\*/ && !/^\*/ && !/^\$$/}}; /^package /{print;display=1}'"'"' {}; addlicense -c "SAP SE" -s -y "$$year" -- {}' + +license-headers: FORCE install-addlicense @printf "\e[1;36m>> addlicense\e[0m\n" - @addlicense -c "SAP SE" -- $(patsubst $(shell awk '$$1 == "module" {print $$2}' go.mod)%,.%/*.go,$(shell go list ./...)) + @addlicense -c "SAP SE" -s -- $(patsubst $(shell awk '$$1 == "module" {print $$2}' go.mod)%,.%/*.go,$(shell go list ./...)) -check-license-headers: FORCE prepare-static-check +check-license-headers: FORCE install-addlicense @printf "\e[1;36m>> addlicense --check\e[0m\n" @addlicense --check -- $(patsubst $(shell awk '$$1 == "module" {print $$2}' go.mod)%,.%/*.go,$(shell go list ./...)) -check-dependency-licenses: FORCE prepare-static-check +check-dependency-licenses: FORCE install go-licence-detector @printf "\e[1;36m>> go-licence-detector\e[0m\n" @go list -m -mod=readonly -json all | go-licence-detector -includeIndirect -rules .license-scan-rules.json -overrides .license-scan-overrides.jsonl @@ -124,30 +134,34 @@ help: FORCE @printf " make \e[36m\e[0m\n" @printf "\n" @printf "\e[1mGeneral\e[0m\n" - @printf " \e[36mvars\e[0m Display values of relevant Makefile variables.\n" - @printf " \e[36mhelp\e[0m Display this help.\n" + @printf " \e[36mvars\e[0m Display values of relevant Makefile variables.\n" + @printf " \e[36mhelp\e[0m Display this help.\n" @printf "\n" @printf "\e[1mPrepare\e[0m\n" - @printf " \e[36mprepare-static-check\e[0m Install any tools required by static-check. This is used in CI before dropping privileges, you should probably install all the tools using your package manager\n" + @printf " \e[36minstall-golangci-lint\e[0m Install golangci-lint required by run-golangci-lint/static-check\n" + @printf " \e[36minstall-go-licence-detector\e[0m Install go-licence-detector required by check-dependency-licenses/static-check\n" + @printf " \e[36minstall-addlicense\e[0m Install addlicense required by check-license-headers/license-headers/static-check\n" + @printf " \e[36mprepare-static-check\e[0m Install any tools required by static-check. This is used in CI before dropping privileges, you should probably install all the tools using your package manager\n" @printf "\n" @printf "\e[1mBuild\e[0m\n" - @printf " \e[36mbuild-all\e[0m Build all binaries.\n" - @printf " \e[36mbuild/limes\e[0m Build limes.\n" - @printf " \e[36minstall\e[0m Install all binaries. This option understands the conventional 'DESTDIR' and 'PREFIX' environment variables for choosing install locations.\n" + @printf " \e[36mbuild-all\e[0m Build all binaries.\n" + @printf " \e[36mbuild/limes\e[0m Build limes.\n" + @printf " \e[36minstall\e[0m Install all binaries. This option understands the conventional 'DESTDIR' and 'PREFIX' environment variables for choosing install locations.\n" @printf "\n" @printf "\e[1mTest\e[0m\n" - @printf " \e[36mcheck\e[0m Run the test suite (unit tests and golangci-lint).\n" - @printf " \e[36mrun-golangci-lint\e[0m Install and run golangci-lint. Installing is used in CI, but you should probably install golangci-lint using your package manager.\n" - @printf " \e[36mbuild/cover.out\e[0m Run tests and generate coverage report.\n" - @printf " \e[36mbuild/cover.html\e[0m Generate an HTML file with source code annotations from the coverage report.\n" - @printf " \e[36mstatic-check\e[0m Run static code checks\n" + @printf " \e[36mcheck\e[0m Run the test suite (unit tests and golangci-lint).\n" + @printf " \e[36mrun-golangci-lint\e[0m Install and run golangci-lint. Installing is used in CI, but you should probably install golangci-lint using your package manager.\n" + @printf " \e[36mbuild/cover.out\e[0m Run tests and generate coverage report.\n" + @printf " \e[36mbuild/cover.html\e[0m Generate an HTML file with source code annotations from the coverage report.\n" + @printf " \e[36mstatic-check\e[0m Run static code checks\n" @printf "\n" @printf "\e[1mDevelopment\e[0m\n" - @printf " \e[36mvendor\e[0m Run go mod tidy, go mod verify, and go mod vendor.\n" - @printf " \e[36mvendor-compat\e[0m Same as 'make vendor' but go mod tidy will use '-compat' flag with the Go version from go.mod file as value.\n" - @printf " \e[36mlicense-headers\e[0m Add license headers to all non-vendored source code files.\n" - @printf " \e[36mcheck-license-headers\e[0m Check license headers in all non-vendored .go files.\n" - @printf " \e[36mcheck-dependency-licenses\e[0m Check all dependency licenses using go-licence-detector.\n" - @printf " \e[36mclean\e[0m Run git clean.\n" + @printf " \e[36mvendor\e[0m Run go mod tidy, go mod verify, and go mod vendor.\n" + @printf " \e[36mvendor-compat\e[0m Same as 'make vendor' but go mod tidy will use '-compat' flag with the Go version from go.mod file as value.\n" + @printf " \e[36mforce-license-headers\e[0m Remove and re-add all license headers to all non-vendored source code files.\n" + @printf " \e[36mlicense-headers\e[0m Add license headers to all non-vendored source code files.\n" + @printf " \e[36mcheck-license-headers\e[0m Check license headers in all non-vendored .go files.\n" + @printf " \e[36mcheck-dependency-licenses\e[0m Check all dependency licenses using go-licence-detector.\n" + @printf " \e[36mclean\e[0m Run git clean.\n" .PHONY: FORCE diff --git a/testing/with-postgres-db.sh b/testing/with-postgres-db.sh index c6d07beba..3c370c832 100755 --- a/testing/with-postgres-db.sh +++ b/testing/with-postgres-db.sh @@ -13,6 +13,8 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 # shellcheck shell=ash set -euo pipefail