diff --git a/Makefile b/Makefile index 104c122..e3c7982 100644 --- a/Makefile +++ b/Makefile @@ -11,22 +11,30 @@ default: clean debug commit: fmt lint git commit -a -# get golangci-lint with: -# go get github.com/golangci/golangci-lint/cmd/golangci-lint@v1.31.0 -# get gofumports with: -# go get mvdan.cc/gofumpt/gofumports +# get gofumpt with: +# go install mvdan.cc/gofumpt@latest fmt: gofumpt -l -w . golangci-lint run --fix +fmt-check: + @test -z "$$(gofmt -l .)" || { echo "gofmt found unformatted files:"; gofmt -l .; exit 1; } + lint: golangci-lint run - sh -c 'test -z "$$(gofmt -l .)"' test: go test ./... -check: lint test +check: fmt-check lint test + +build: ./$(FN)d + +hooks: + @mkdir -p .git/hooks + @printf '#!/bin/sh\nmake fmt-check lint\n' > .git/hooks/pre-commit + @chmod +x .git/hooks/pre-commit + @echo "Pre-commit hook installed." debug: ./$(FN)d DEBUG=1 GOTRACEBACK=all ./$(FN)d @@ -48,5 +56,6 @@ docker: go build -o ../../$(FN)d $(GOFLAGS) . tools: - go get -v github.com/golangci/golangci-lint/cmd/golangci-lint@v1.31.0 - go get -v mvdan.cc/gofumpt/gofumports + go install mvdan.cc/gofumpt@latest + +.PHONY: default commit fmt fmt-check lint test check build hooks debug debugger run clean docker tools