···11+SHELL = /bin/bash
22+.SHELLFLAGS = -o pipefail -c
33+44+.PHONY: help
55+help: ## Print info about all commands
66+ @echo "Commands:"
77+ @echo
88+ @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[01;32m%-20s\033[0m %s\n", $$1, $$2}'
99+1010+.PHONY: build
1111+build: ## Build all executables
1212+ go build -o oauth .
1313+1414+.PHONY: all
1515+all: build
1616+1717+.PHONY: test
1818+test: ## Run tests
1919+ go test ./...
2020+2121+.PHONY: coverage-html
2222+coverage-html: ## Generate test coverage report and open in browser
2323+ go test ./... -coverpkg=./... -coverprofile=test-coverage.out
2424+ go tool cover -html=test-coverage.out
2525+2626+.PHONY: lint
2727+lint: ## Verify code style and run static checks
2828+ go vet ./...
2929+ test -z $(gofmt -l ./...)
3030+3131+.PHONY: fmt
3232+fmt: ## Run syntax re-formatting (modify in place)
3333+ go fmt ./...
3434+3535+.PHONY: check
3636+check: ## Compile everything, checking syntax (does not output binaries)
3737+ go build ./...
3838+3939+.env:
4040+ if [ ! -f ".env" ]; then cp example.dev.env .env; fi