# 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
