.PHONY: check
check: lint cs tests phpstan

.PHONY: tests
tests:
	php vendor/bin/phpunit

.PHONY: lint
lint:
	php vendor/bin/parallel-lint --colors \
		src tests

.PHONY: cs-install
cs-install:
	git clone https://github.com/phpstan/build-cs.git || true
	git -C build-cs fetch origin && git -C build-cs reset --hard origin/1.x
	composer install --working-dir build-cs

.PHONY: cs
cs:
	php build-cs/vendor/bin/phpcs --standard=build-cs/phpcs.xml src tests

.PHONY: cs-fix
cs-fix:
	php build-cs/vendor/bin/phpcbf --standard=build-cs/phpcs.xml src tests

.PHONY: phpstan
phpstan:
	php vendor/bin/phpstan analyse -l 8 -c phpstan.neon src tests

.PHONY: phpstan-generate-baseline
phpstan-generate-baseline:
	php vendor/bin/phpstan analyse -l 8 -c phpstan.neon src tests -b phpstan-baseline.neon
