VENV := .venv
PYTHON := $(VENV)/bin/python

.DEFAULT_GOAL := help
.PHONY: help install run test check clean

help: ## Показать доступные команды
	@awk 'BEGIN {FS = ":.*##"} /^[a-zA-Z_-]+:.*##/ {printf "%-12s %s\n", $$1, $$2}' $(MAKEFILE_LIST)

$(PYTHON): requirements.txt
	python3 -m venv $(VENV)
	$(PYTHON) -m pip install --upgrade pip
	$(PYTHON) -m pip install -r requirements.txt

install: $(PYTHON) ## Создать виртуальную среду и установить зависимости

run: $(PYTHON) ## Запустить интерактивное меню приложения
	$(PYTHON) photo_sort.py

test: $(PYTHON) ## Запустить автоматические тесты
	$(PYTHON) -m unittest -v test_photo_sort.py

check: test ## Проверить проект (сейчас: тесты)

clean: ## Удалить временные Python-файлы и кэши тестов
	rm -rf __pycache__ .pytest_cache .mypy_cache .ruff_cache .coverage htmlcov
	find . -maxdepth 1 -type f \( -name '*.pyc' -o -name '*.pyo' \) -delete
