| .PHONY: all clean clean-coverage install install-dependencies install-tools lint test test-verbose test-with-coverage | |
| export ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) | |
| export PKG := github.com/sergi/go-diff | |
| export ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) | |
| $(eval $(ARGS):;@:) # turn arguments into do-nothing targets | |
| export ARGS | |
| ifdef ARGS | |
| PKG_TEST := $(ARGS) | |
| else | |
| PKG_TEST := $(PKG)/... | |
| endif | |
| all: install-tools install-dependencies install lint test | |
| clean: | |
| go clean -i $(PKG)/... | |
| go clean -i -race $(PKG)/... | |
| clean-coverage: | |
| find $(ROOT_DIR) | grep .coverprofile | xargs rm | |
| install: | |
| go install -v $(PKG)/... | |
| install-dependencies: | |
| go get -t -v $(PKG)/... | |
| go build -v $(PKG)/... | |
| install-tools: | |
| # Install linting tools | |
| go get -u -v golang.org/x/lint/... | |
| go get -u -v github.com/kisielk/errcheck/... | |
| # Install code coverage tools | |
| go get -u -v github.com/onsi/ginkgo/ginkgo/... | |
| go get -u -v github.com/modocache/gover/... | |
| go get -u -v github.com/mattn/goveralls/... | |
| lint: | |
| $(ROOT_DIR)/scripts/lint.sh | |
| test: | |
| go test -race -test.timeout 120s $(PKG_TEST) | |
| test-verbose: | |
| go test -race -test.timeout 120s -v $(PKG_TEST) | |
| test-with-coverage: | |
| ginkgo -r -cover -race -skipPackage="testdata" |