.PHONY: help install install-dev test lint format clean run docker-build docker-run docker-compose-up docker-compose-down help: @echo "gcli2api - Development Commands" @echo "" @echo "Available commands:" @echo " make install - Install production dependencies" @echo " make install-dev - Install development dependencies" @echo " make test - Run tests" @echo " make test-cov - Run tests with coverage report" @echo " make lint - Run linters (flake8, mypy)" @echo " make format - Format code with black" @echo " make format-check - Check code formatting without making changes" @echo " make clean - Clean build artifacts and cache" @echo " make run - Run the application" @echo " make docker-build - Build Docker image" @echo " make docker-run - Run Docker container" @echo " make docker-compose-up - Start services with docker-compose" @echo " make docker-compose-down - Stop services with docker-compose" install: pip install -r requirements.txt install-dev: pip install -e ".[dev]" pip install -r requirements-dev.txt test: python -m pytest -v test-cov: python -m pytest --cov=src --cov-report=term-missing --cov-report=html lint: python -m flake8 src/ web.py config.py log.py --max-line-length=100 --extend-ignore=E203,W503 python -m mypy src/ --ignore-missing-imports format: python -m black src/ web.py config.py log.py test_*.py format-check: python -m black --check src/ web.py config.py log.py test_*.py clean: find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true find . -type f -name "*.pyc" -delete find . -type f -name "*.pyo" -delete find . -type f -name "*.log" -delete rm -rf .pytest_cache .mypy_cache .coverage htmlcov/ build/ dist/ *.egg-info run: python web.py docker-build: docker build -t gcli2api:latest . docker-run: docker run -d --name gcli2api --network host -e PASSWORD=pwd -e PORT=7861 -v $$(pwd)/data/creds:/app/creds gcli2api:latest docker-compose-up: docker-compose up -d docker-compose-down: docker-compose down