| .PHONY: install run dev clean modal-deploy modal-install modal-login help |
|
|
| |
| PYTHON = python3 |
| VENV = .venv |
| VENV_PYTHON = $(VENV)/bin/python |
| VENV_PIP = $(VENV)/bin/pip |
| PORT = 7860 |
|
|
| help: |
| @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: |
| @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: |
| @lsof -ti:$(PORT) | xargs kill -9 2>/dev/null || true |
| @echo "π Starting CodeAtlas on http://localhost:$(PORT)" |
| @$(VENV_PYTHON) app.py |
|
|
| dev: |
| @lsof -ti:$(PORT) | xargs kill -9 2>/dev/null || true |
| @echo "π§ Starting in dev mode..." |
| @GRADIO_WATCH_DIRS=. $(VENV_PYTHON) app.py |
|
|
| modal-login: |
| @echo "π Authenticating with Modal..." |
| @$(VENV)/bin/modal token new |
| @echo "β
Modal authenticated!" |
|
|
| modal-install: |
| @echo "π¦ Installing Modal..." |
| @$(VENV_PIP) install modal |
| @echo "β
Modal installed! Run 'make modal-login' to authenticate" |
|
|
| modal-deploy: |
| @echo "βοΈ Deploying to Modal..." |
| @$(VENV)/bin/modal deploy modal_backend.py |
| @echo "β
Deployed!" |
|
|
| clean: |
| @rm -rf $(VENV) __pycache__ src/**/__pycache__ .session_state.json |
| @rm -rf data/diagrams/* data/audios/* data/logs/* |
| @echo "β
Cleaned!" |
|
|