TESTS = $(shell find test -type f -name test-*)
TESTTIMEOUT = 15000
MOCHA_OPTS =
REPORTER = tap
JSCOVERAGE = ./node_modules/jscover/bin/jscover
NPM = ./node_modules/tnpm/bin/tnpm
PROJECT_DIR = $(shell pwd)
NPM_INSTALL_PRODUCTION = PYTHON=`which python2.6` NODE_ENV=production $(NPM) install
NPM_INSTALL_TEST = PYTHON=`which python2.6` NODE_ENV=test $(NPM) install

default: test

pre-install:
	@if [ ! -f $(NPM) ]; \
	then \
	  npm install tnpm; \
	fi

check: pre-install
	@$(NPM) check

install: pre-install
	@$(NPM_INSTALL_PRODUCTION)

install-test: check
	@$(NPM_INSTALL_TEST)

test: install-test
	@NODE_ENV=test node_modules/mocha/bin/mocha \
		--reporter $(REPORTER) --timeout $(TESTTIMEOUT) $(MOCHA_OPTS) $(TESTS)

reinstall:
	@$(MAKE) install

cov:
	@rm -rf .cov
	@$(JSCOVERAGE) ---exclude=test --exclude=run . .cov
	@cp -rf ./node_modules ./test .cov

test-cov: cov
	@$(MAKE) -C .cov test REPORTER=$(REPORTER)
	@$(MAKE) -C .cov test REPORTER=html-cov > $(PROJECT_DIR)/coverage.html
	@if [ `echo $$OSTYPE | grep -c 'darwin'` -eq 1 ]; then open $(PROJECT_DIR)/coverage.html; else gnome-open $(PROJECT_DIR)/coverage.html; fi



clean:
	@rm -rf ./node_modules
	@rm -rf ./run
	@rm -rf ./.cov/
	@rm -rf ./coverage.html


default: test

.-PHONY: default
