.PHONY: lint test test_coverage clean

env: requirements.txt requirements-dev.txt
	python3.11 -m venv env
	env/bin/pip3.11 install --upgrade pip
	env/bin/pip3.11 install -r requirements.txt
	env/bin/pip3.11 install -r requirements-dev.txt

lint: auditlogger tests setup.py
	env/bin/flake8 auditlogger/ tests/ setup.py

test: auditlogger tests
	env/bin/py.test tests/

test_coverage: auditlogger tests
	env/bin/py.test \
		--cov auditlogger tests/ \
		--cov-report xml \
		--junitxml=pyunit.xml

docker_up:
	docker compose up -d

docker_down:
	docker compose down --remove-orphans

docker_test:
	docker compose up \
		--exit-code-from lint-and-test \
		--abort-on-container-exit \
		--build lint-and-test

clean:
	deactivate || true
	rm -rf env
	find . | grep -vE "^\./env" | grep -E "__pycache__|\.pyc|\.pyo$\" | xargs rm -rf
	rm -f .coverage
	rm -rf .pytest_cache
	rm -rf .pytest
	rm -rf .cache
	rm -rf .eggs
	rm -rf auditlogger.egg-info
	rm -rf build
	rm -rf dist
