PYTHON=python3

VENV_ROOT=$(shell pwd)/.venv
VENV_BIN=$(VENV_ROOT)/bin
VENV_PIP=$(VENV_BIN)/pip3
VENV_PYTHON=$(VENV_BIN)/python

venv:
	test -d ".venv" || ${PYTHON} -m venv .venv
	. ${VENV_BIN}/activate

fmt: install-dev-dependencies
	${VENV_BIN}/ruff format jobs/ layers/src/sliutil/ tests/

lint: install-dev-dependencies
	${VENV_BIN}/ruff check jobs/ layers/src/sliutil/ tests/

test: install-dev-dependencies
	PYTHONPATH=layers/src ${VENV_PYTHON} -m unittest discover -s tests -v

check: lint fmt
	git diff --exit-code

install-dependencies: install-dev-dependencies
	${VENV_PIP} install -r layers/requirements.txt
	${VENV_PIP} install -e layers/

install-dev-dependencies: venv
	${VENV_PIP} install -r requirements-dev.txt

.PHONY: venv fmt lint test check install-dev-dependencies install-dependencies
