# MCP ESPTool Server Makefile

.PHONY: help install dev test lint format clean docker-build docker-up docker-down docker-logs

# Default target
help:
	@echo "MCP ESPTool Server Development Commands"
	@echo ""
	@echo "Setup & Installation:"
	@echo "  install     Install project with uv"
	@echo "  dev         Install in development mode"
	@echo ""
	@echo "Development:"
	@echo "  test        Run test suite"
	@echo "  lint        Run linting checks"
	@echo "  format      Format code with ruff"
	@echo "  clean       Clean build artifacts"
	@echo ""
	@echo "Docker Operations:"
	@echo "  docker-build    Build development container"
	@echo "  docker-up       Start development environment"
	@echo "  docker-down     Stop development environment"
	@echo "  docker-logs     View container logs"
	@echo ""
	@echo "MCP Integration:"
	@echo "  mcp-install     Install server with Claude Code"
	@echo "  mcp-test        Test MCP server integration"

# Installation
install:
	uv sync

dev:
	uv sync --dev
	uv run pre-commit install

# Testing and Quality
test:
	PYTHONPATH=src uv run pytest tests/ -v

test-watch:
	PYTHONPATH=src uv run pytest-watch tests/

lint:
	uv run ruff check src/ tests/
	uv run mypy src/

format:
	uv run ruff format src/ tests/
	uv run ruff check --fix src/ tests/

clean:
	find . -type d -name "__pycache__" -exec rm -rf {} +
	find . -type f -name "*.pyc" -delete
	rm -rf build/ dist/ *.egg-info/
	rm -rf .pytest_cache/ .coverage .mypy_cache/

# Docker Operations
docker-build:
	docker compose build

docker-up:
	docker compose up -d
	@echo "Development environment started"
	@echo "Run 'make docker-logs' to view logs"

docker-down:
	docker compose down

docker-logs:
	docker compose logs -f

# MCP Integration
mcp-install:
	claude mcp add mcp-esptool-server "uvx mcp-esptool-server"
	@echo "MCP server installed with Claude Code"
	@echo "You can now use it in Claude conversations"

mcp-test:
	uvx mcp-esptool-server --help
	@echo "Testing MCP server installation..."

# Development shortcuts
run:
	uv run mcp-esptool-server

run-debug:
	uv run mcp-esptool-server --debug

run-production:
	uv run mcp-esptool-server --production