36 lines
664 B
Makefile
36 lines
664 B
Makefile
# 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
|