# One command before committing: make # # gofmt is first because a formatting failure is the cheapest to fix, and it is the only check that # needs a wrapper — gofmt reports offending files on stdout and still exits 0. .POSIX: .PHONY: check fmt vet test build run check: fmt vet test fmt: @out=$$(gofmt -l .); test -z "$$out" || { echo "not gofmt'd:"; echo "$$out"; exit 1; } vet: go vet ./... test: go test ./... # -o is required, not stylistic: the package lives in ./src, and without it `go build` would try to # write a binary named "src" over the directory. build: go build -o levyraati26-go ./src # Templates and migrations are embedded, so seeing a change means rebuilding. run: build ./levyraati26-go