mirror of
https://github.com/hanzoai/mcp.git
synced 2026-10-15 12:30:12 +00:00
92 lines
2.3 KiB
Makefile
92 lines
2.3 KiB
Makefile
.PHONY: install test lint clean dev venv
|
|
|
|
# Virtual environment detection and activation
|
|
VENV_NAME ?= .venv
|
|
|
|
# Detect OS for proper path handling
|
|
ifeq ($(OS),Windows_NT)
|
|
VENV_ACTIVATE = $(VENV_NAME)\Scripts\activate
|
|
VENV_TEST = $(VENV_NAME)\Scripts\pytest.exe
|
|
VENV_PYTHON = $(VENV_NAME)\Scripts\python.exe
|
|
RM_CMD = rmdir /s /q
|
|
CP = copy
|
|
SEP = \\
|
|
ACTIVATE_CMD = call
|
|
else
|
|
VENV_ACTIVATE = $(VENV_NAME)/bin/activate
|
|
VENV_TEST = $(VENV_NAME)/bin/pytest
|
|
VENV_PYTHON = $(VENV_NAME)/bin/python
|
|
RM_CMD = rm -rf
|
|
CP = cp
|
|
SEP = /
|
|
ACTIVATE_CMD = .
|
|
endif
|
|
|
|
# Python interpreter
|
|
PYTHON = python
|
|
# Path to package manager (uv or pip)
|
|
# Check if uv is available, otherwise use plain pip
|
|
UV := $(shell command -v uv 2> /dev/null)
|
|
ifeq ($(UV),)
|
|
PACKAGE_CMD = pip install
|
|
else
|
|
PACKAGE_CMD = $(UV) pip install
|
|
endif
|
|
|
|
# Project paths
|
|
SRC_DIR = hanzo_mcp
|
|
TEST_DIR = tests
|
|
|
|
# Create virtual environment
|
|
venv:
|
|
$(PYTHON) -m venv $(VENV_NAME)
|
|
ifeq ($(OS),Windows_NT)
|
|
@echo "Virtual environment created. Run '$(VENV_ACTIVATE)' to activate it."
|
|
else
|
|
@echo "Virtual environment created. Run 'source $(VENV_ACTIVATE)' to activate it."
|
|
endif
|
|
|
|
install: venv-check
|
|
$(ACTIVATE_CMD) $(VENV_ACTIVATE) && $(PACKAGE_CMD) -e "."
|
|
|
|
uninstall: venv-check
|
|
$(ACTIVATE_CMD) $(VENV_ACTIVATE) && $(PYTHON) -m pip uninstall -y mcp-claude-code
|
|
|
|
reinstall: uninstall install
|
|
|
|
install-dev: venv-check
|
|
$(ACTIVATE_CMD) $(VENV_ACTIVATE) && $(PACKAGE_CMD) -e ".[dev]"
|
|
|
|
install-test: venv-check
|
|
$(ACTIVATE_CMD) $(VENV_ACTIVATE) && $(PACKAGE_CMD) -e ".[test]"
|
|
|
|
test: venv-check
|
|
$(ACTIVATE_CMD) $(VENV_ACTIVATE) && python -m pytest $(TEST_DIR) --disable-warnings
|
|
|
|
test-cov: venv-check
|
|
$(ACTIVATE_CMD) $(VENV_ACTIVATE) && python -m pytest --cov=$(SRC_DIR) $(TEST_DIR)
|
|
|
|
lint: venv-check
|
|
$(ACTIVATE_CMD) $(VENV_ACTIVATE) && ruff check $(SRC_DIR) $(TEST_DIR)
|
|
|
|
format: venv-check
|
|
$(ACTIVATE_CMD) $(VENV_ACTIVATE) && ruff format $(SRC_DIR) $(TEST_DIR)
|
|
|
|
clean:
|
|
$(RM_CMD) .pytest_cache htmlcov .coverage 2>nul || true
|
|
ifeq ($(OS),Windows_NT)
|
|
for /d /r . %d in (__pycache__) do @if exist "%d" rd /s /q "%d"
|
|
else
|
|
find . -name "__pycache__" -type d -exec rm -rf {} +
|
|
endif
|
|
|
|
# Helper to check for virtual environment
|
|
venv-check:
|
|
@if [ ! -f $(VENV_ACTIVATE) ]; then \
|
|
echo "Virtual environment not found. Creating one..." ; \
|
|
$(MAKE) venv ; \
|
|
fi
|
|
|
|
# Default target
|
|
all: test
|