BIN := ./node_modules/.bin
FILES := index.js $(shell find lib spec/lib -type f -name "*.js")
TEST_FILES := spec/helper.js $(shell find spec/lib -type f -name "*.js")

VERSION := $(shell node -e "console.log(require('./package.json').version)")

.PHONY: cover test bdd lint ci release

test: lint
	@$(BIN)/mocha --colors -R dot $(TEST_FILES)

bdd: lint
	@$(BIN)/mocha --colors -R spec $(TEST_FILES)

cover:
	@istanbul cover $(BIN)/_mocha $(TEST_FILES) --report lcovonly -- -R spec

lint:
	@$(BIN)/eslint index.js lib spec examples

ci: lint cover

release: lint test
	@git push origin master
	@git checkout release ; git merge master ; git push ; git checkout master
	@git tag -m "$(VERSION)" v$(VERSION)
	@git push --tags
	@npm publish ./
