| # Directory to place `go install`ed binaries into. |
| export GOBIN ?= $(shell pwd)/bin |
| |
| GOLINT = $(GOBIN)/golint |
| |
| GO_FILES ?= *.go |
| |
| .PHONY: build |
| build: |
| go build ./... |
| |
| .PHONY: test |
| test: |
| go test -race ./... |
| |
| .PHONY: gofmt |
| gofmt: |
| $(eval FMT_LOG := $(shell mktemp -t gofmt.XXXXX)) |
| gofmt -e -s -l $(GO_FILES) > $(FMT_LOG) || true |
| @[ ! -s "$(FMT_LOG)" ] || (echo "gofmt failed:" && cat $(FMT_LOG) && false) |
| |
| $(GOLINT): |
| go install golang.org/x/lint/golint |
| |
| .PHONY: golint |
| golint: $(GOLINT) |
| $(GOLINT) ./... |
| |
| .PHONY: lint |
| lint: gofmt golint |
| |
| .PHONY: cover |
| cover: |
| go test -coverprofile=cover.out -coverpkg ./... -v ./... |
| go tool cover -html=cover.out -o cover.html |