Spaces:
Sleeping
Sleeping
| # Run after completing `modal token new` in the browser. | |
| set -euo pipefail | |
| cd "$(dirname "$0")/.." | |
| source .venv/bin/activate | |
| MODAL_TOML="$HOME/.modal.toml" | |
| ENV_FILE=".env" | |
| if [[ ! -f "$MODAL_TOML" ]]; then | |
| echo "Modal not authenticated yet. Run: modal token new" | |
| echo "Then open the URL in your browser and approve." | |
| exit 1 | |
| fi | |
| TOKEN_ID=$(grep -E 'token_id' "$MODAL_TOML" | head -1 | sed -E 's/.*"([^"]+)".*/\1/') | |
| TOKEN_SECRET=$(grep -E 'token_secret' "$MODAL_TOML" | head -1 | sed -E 's/.*"([^"]+)".*/\1/') | |
| if [[ -z "$TOKEN_ID" || -z "$TOKEN_SECRET" ]]; then | |
| echo "Could not read tokens from $MODAL_TOML" | |
| exit 1 | |
| fi | |
| echo "Deploying to Modal..." | |
| DEPLOY_OUTPUT=$(modal deploy modal_app.py 2>&1) | |
| echo "$DEPLOY_OUTPUT" | |
| INFERENCE_URL=$(echo "$DEPLOY_OUTPUT" | grep -oE 'https://[^ ]+--aether-garden-inference\.modal\.run' | head -1) | |
| if [[ -z "$INFERENCE_URL" ]]; then | |
| INFERENCE_URL=$(echo "$DEPLOY_OUTPUT" | grep -oE 'https://[^ ]+\.modal\.run' | head -1) | |
| fi | |
| # Update .env (preserve HF_* lines) | |
| touch "$ENV_FILE" | |
| grep -v '^MODAL_TOKEN_ID=' "$ENV_FILE" | grep -v '^MODAL_TOKEN_SECRET=' | grep -v '^MODAL_INFERENCE_URL=' | grep -v '^USE_MOCK_AI=' > "$ENV_FILE.tmp" || true | |
| mv "$ENV_FILE.tmp" "$ENV_FILE" | |
| { | |
| echo "MODAL_TOKEN_ID=$TOKEN_ID" | |
| echo "MODAL_TOKEN_SECRET=$TOKEN_SECRET" | |
| echo "MODAL_INFERENCE_URL=$INFERENCE_URL" | |
| echo "USE_MOCK_AI=false" | |
| } >> "$ENV_FILE" | |
| echo "" | |
| echo "Done. .env updated with Modal credentials." | |
| echo "Inference URL: ${INFERENCE_URL:-<check modal deploy output above>}" | |