codeAtlas / Makefile
aghilsabu's picture
Clean up project: add LICENSE, simplify Modal config, update docs
04a56b4
.PHONY: install run dev clean modal-deploy modal-install modal-login help
# Python configuration
PYTHON = python3
VENV = .venv
VENV_PYTHON = $(VENV)/bin/python
VENV_PIP = $(VENV)/bin/pip
PORT = 7860
help: ## Show this help message
@echo ""
@echo " πŸ—οΈ CodeAtlas - Commands"
@echo " ========================"
@echo ""
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-12s\033[0m %s\n", $$1, $$2}'
@echo ""
install: ## Create venv and install dependencies
@echo "πŸ“¦ Installing system dependencies (graphviz)..."
@if command -v apt-get >/dev/null 2>&1; then \
sudo apt-get update -qq && sudo apt-get install -y -qq graphviz; \
elif command -v brew >/dev/null 2>&1; then \
brew install graphviz; \
elif command -v yum >/dev/null 2>&1; then \
sudo yum install -y graphviz; \
else \
echo "⚠️ Please install graphviz manually"; \
fi
@echo "πŸ“¦ Creating virtual environment..."
@$(PYTHON) -m venv $(VENV)
@$(VENV_PIP) install --upgrade pip
@$(VENV_PIP) install -r requirements.txt
@echo "βœ… Done! Run 'make run' to start"
run: ## Run the application
@lsof -ti:$(PORT) | xargs kill -9 2>/dev/null || true
@echo "πŸš€ Starting CodeAtlas on http://localhost:$(PORT)"
@$(VENV_PYTHON) app.py
dev: ## Run with auto-reload
@lsof -ti:$(PORT) | xargs kill -9 2>/dev/null || true
@echo "πŸ”§ Starting in dev mode..."
@GRADIO_WATCH_DIRS=. $(VENV_PYTHON) app.py
modal-login: ## Authenticate with Modal (run once)
@echo "πŸ” Authenticating with Modal..."
@$(VENV)/bin/modal token new
@echo "βœ… Modal authenticated!"
modal-install: ## Install Modal CLI in venv
@echo "πŸ“¦ Installing Modal..."
@$(VENV_PIP) install modal
@echo "βœ… Modal installed! Run 'make modal-login' to authenticate"
modal-deploy: ## Deploy backend API to Modal
@echo "☁️ Deploying to Modal..."
@$(VENV)/bin/modal deploy modal_backend.py
@echo "βœ… Deployed!"
clean: ## Remove venv and cache files
@rm -rf $(VENV) __pycache__ src/**/__pycache__ .session_state.json
@rm -rf data/diagrams/* data/audios/* data/logs/*
@echo "βœ… Cleaned!"