diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..fb737d6 --- /dev/null +++ b/Makefile @@ -0,0 +1,37 @@ +-include .env +export + +.PHONY: install test lint typecheck start help + +UV ?= $(shell command -v uv 2>/dev/null || if [ -x "$$HOME/.local/bin/uv" ]; then printf "%s" "$$HOME/.local/bin/uv"; else printf "%s" "uv"; fi) + +LLM_CONNECT_HOST ?= 127.0.0.1 +LLM_CONNECT_PORT ?= 8080 +LLM_CONNECT_PROVIDER ?= mock +LLM_CONNECT_MODEL ?= +SERVER_ARGS ?= + +install: ## Install dependencies (dev group) + $(UV) sync --group dev + +test: ## Run test suite + $(UV) run pytest + +lint: ## Run ruff linter + $(UV) run ruff check . + +typecheck: ## Run mypy type checker + $(UV) run mypy llm_connect + +start: ## Start llm-connect HTTP server (reads .env and LLM_CONNECT_* overrides) + $(UV) run python -m llm_connect.server \ + --host $(LLM_CONNECT_HOST) \ + --port $(LLM_CONNECT_PORT) \ + --provider $(LLM_CONNECT_PROVIDER) \ + $(if $(LLM_CONNECT_MODEL),--model $(LLM_CONNECT_MODEL),) \ + $(SERVER_ARGS) + +help: ## Show this help message + @grep -Eh '^[a-zA-Z_-]+:.*?##' $(MAKEFILE_LIST) | \ + awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-16s\033[0m %s\n", $$1, $$2}' | \ + sort \ No newline at end of file