aether-garden / scripts /finish_modal_setup.sh
kavyabhand's picture
Deploy Aether Garden — full feature build
b3ca9de verified
Raw
History Blame Contribute Delete
1.54 kB
#!/usr/bin/env bash
# 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>}"