all: clean coverage docs



docs:

	cd docs && make html



view-docs:

	open docs/_build/html/index.html



start-server: stop-server

	node tests/Client/server.js &> /dev/null &



stop-server:

	@PID=$(shell ps axo pid,command \

	  | grep 'tests/Client/server.js' \

	  | grep -v grep \

	  | cut -f 1 -d " "\

	) && [ -n "$$PID" ] && kill $$PID || true



test: start-server

	vendor/bin/phpunit $(TEST)

	$(MAKE) stop-server



coverage: start-server

	vendor/bin/phpunit --coverage-html=build/artifacts/coverage $(TEST)

	$(MAKE) stop-server



view-coverage:

	open build/artifacts/coverage/index.html



clean:

	rm -rf build/artifacts/*

	cd docs && make clean



tag:

	$(if $(TAG),,$(error TAG is not defined. Pass via "make tag TAG=4.2.1"))

	@echo Tagging $(TAG)

	chag update -m '$(TAG) ()'

	git add -A

	git commit -m '$(TAG) release'

	chag tag



perf: start-server

	php tests/perf.php

	$(MAKE) stop-server



.PHONY: docs

