BIN=cms ENV=`cat .env` VER=`git rev-parse HEAD` CC=go1.15 all: setup vendor gen build setup: @env GOMOD=off go get golang.org/dl/go1.15 @env GOMOD=off $(CC) download @env GOMOD=off $(CC) get git.sr.ht/~evanj/embed/cmd/embed @env GOMOD=off $(CC) get github.com/golang/mock/mockgen vendor: go.mod go.sum @$(CC) mod tidy @$(CC) mod vendor build: @echo $(VER) | xargs -I {} $(CC) build -ldflags='-s -w -X main.build={}' -o $(BIN) gen: @$(CC) generate ./... test: @env $(ENV) $(CC) test ./... -cover -count 1 coverage: @env $(ENV) $(CC) test ./... -cover -coverprofile=coverage.out ; $(CC) tool cover -html=coverage.out lint: @find * -not -name '*_embed.go' | grep -E '*.(sql|go|js|css|html)' | entr -cr $(CC) vet ./... run: gen build @clear @env $(ENV) ./$(BIN) dev: @find * -not -name '*_embed.go' | grep -E '*.(sql|go|js|css|html)' | entr -cr make run