PACKAGES = `go list ./... | grep -v /vendor/`

.PHONY: dev-cron dev-ingest \
	lint lint-go lint-yaml \
	setup setup-linter-go setup-linter-yaml  \
	test \
	update

dev-ingest:
	go run cmd/ingest/main.go

dev-cron:
	go run cmd/cron/main.go

lint: lint-go lint-yaml

lint-go:
	gometalinter \
	--disable-all \
	--enable=deadcode \
	--enable=errcheck \
	--enable=goconst \
	--enable=gofmt \
	--enable=goimports \
	--enable=golint \
	--enable=ineffassign \
	--enable=misspell \
	--enable=structcheck \
	--enable=varcheck \
	--enable=vet \
	--enable=vetshadow \
	--exclude=vendor \
	--exclude=mocks \
	--deadline=180s \
	--tests ./...

lint-yaml:
	yamllint .

setup: setup-linter-go setup-linter-yaml

setup-linter-go:
	# Install Go Meta Linter
	go get -u github.com/alecthomas/gometalinter
	gometalinter --install

setup-linter-yaml:
	# Install YAML linter
	sudo pip install yamllint

test:
	go test -cover -race -v $(PACKAGES)

update:
	glide update --strip-vendor
	glide-vc --only-code --no-tests --use-lock-file
