File size: 2,115 Bytes
04a56b4
67c5c39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
da6a72a
 
 
 
 
 
 
 
 
 
67c5c39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
04a56b4
 
 
 
 
 
 
 
 
 
 
67c5c39
04a56b4
67c5c39
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
.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!"