| #!/usr/bin/env bash |
| set -euo pipefail |
|
|
| |
| |
|
|
| cd "$(dirname "$0")/.." |
| ROOT="$(pwd)" |
| GRADIO_DIR="$ROOT/gradio" |
|
|
| |
| if [ ! -d "$GRADIO_DIR/.git" ]; then |
| echo "==> Adding gradio submodule..." |
| git submodule add --force https://github.com/gradio-app/gradio gradio |
| fi |
|
|
| echo "==> Updating submodule..." |
| git submodule update --init --force gradio |
|
|
| cd "$GRADIO_DIR" |
|
|
| |
| echo "==> Installing gradio (editable)..." |
| uv pip install -e . |
|
|
| echo "==> Installing gradio-client (editable)..." |
| uv pip install -e client/python |
|
|
| |
| echo "==> Generating theme..." |
| uv run python scripts/generate_theme.py |
|
|
| |
| if ! command -v pnpm &>/dev/null; then |
| echo "==> Installing pnpm..." |
| npm install -g pnpm |
| fi |
|
|
| echo "==> Installing frontend dependencies..." |
| export NODE_OPTIONS="--max-old-space-size=8192" |
| pnpm i --frozen-lockfile --ignore-scripts |
|
|
| echo "==> Building frontend..." |
| pnpm build |
|
|
| |
| echo "==> Downloading offline assets..." |
| uv run python scripts/download_offline_assets.py |
|
|
| echo "" |
| echo "✅ Gradio local build complete!" |
| echo " Source: $GRADIO_DIR" |
| echo " Version: $(grep '"version"' gradio/package.json | head -1 | sed 's/.*: "//;s/".*//')" |
| echo "" |
| echo " pyproject.toml should have:" |
| echo ' [tool.uv.sources]' |
| echo ' gradio = { path = "./gradio", editable = true }' |
|
|