.PHONY: help
help: ### Shows this help
	@grep -E '^[0-9a-zA-Z_-]+:' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?### "}; {printf "\033[32;1m%-16s\033[0m %s\n", $$1, $$2}'

.PHONY: all
all: clean build test release ### Does it all

.PHONY: init
init: ### Inits it all
	python3 -m venv .venv
	source .venv/bin/activate
	python3 -m pip install -r requirements.txt
	python3 -m pip install -e .

.PHONY: clean
clean: ### Cleans it all
	rm -frv dist/ build/ *.egg-info
	rm -frv baam/__pycache__
	rm -frv .pytest_cache

.PHONY: build
build: clean ### Builds it all
	python3 -m pip install -r requirements.txt
	python3 -m build

.PHONY: test
test: build ### Tests it all
	pytest
	python3 -m pip install -r requirements.txt
	python3 -m pip install -e .
	baam --version
	python3 -m twine upload --repository testpypi dist/*

.PHONY: release
release: build ### Releases it all
	python3 -m twine upload dist/*
