LINT_ARGS ?= ./...
export GO111MODULE := on

build: bin/server

bin/server:
	CGO_ENABLED=0 go build -mod=vendor -v -o ./bin/server ./cmd/server

watch:
	modd

test: tidy
	GO111MODULE=off go clean -testcache
	go test -mod=vendor -v ./...

lint:
	@golangci-lint run -e '.*/pkg/mod' -e ".*/go/src" --enable-all $(LINT_ARGS)

tidy:
	go mod tidy

vendor: tidy
	go mod vendor

install-devtools: vendor
	# Install modd
	GO111MODULE=off go get -u github.com/cortesi/modd/cmd/modd
	# Install golangci-lint
	GO111MODULE=off go get -u github.com/golangci/golangci-lint/cmd/golangci-lint

clean:
	rm -rf ./bin
	go clean -i -x -r -modcache

doc:
	@echo "Open your browser to http://localhost:6060/pkg/forge.cadoles.com/Pyxis/orion/ to see the documentation"
	@godoc -http=:6060

.PHONY: test clean generate vendor install-devtools lint watch tidy doc