Files
cadSet/text-to-cad/scripts/viewer/upload-viewer-models-catalog.sh
T
2026-07-22 19:38:36 +08:00

59 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
DEFAULT_VIEWER_VERCEL_BLOB_PREFIX="models"
function usage() {
cat <<'EOF'
Usage:
BLOB_READ_WRITE_TOKEN=<token> scripts/viewer/upload-viewer-models-catalog.sh [directory] [upload options]
Uploads the models catalog and CAD Viewer-supported assets to Vercel Blob.
The uploader excludes mechbench/, mechbench2/, 7dof_arm/, and Python source
files by default.
Environment:
BLOB_READ_WRITE_TOKEN Vercel Blob read/write token.
VIEWER_VERCEL_BLOB_READ_WRITE_TOKEN Alternate Vercel Blob read/write token.
VIEWER_ASSET_BACKEND Optional. Defaults to vercel-blob.
Blob prefix:
models Script-defined upload prefix for this branch.
Options are passed through to npm --prefix viewer run upload:blob.
If no directory is passed, models/ is uploaded.
Use --skip-existing to reuse matching remote catalog assets, and
--fetch-missing-lfs to download only the Git LFS objects needed for new or
changed uploads.
EOF
}
case "${1:-}" in
-h|--help)
usage
exit 0
;;
esac
if [ -z "${BLOB_READ_WRITE_TOKEN:-}" ] && [ -z "${VIEWER_VERCEL_BLOB_READ_WRITE_TOKEN:-}" ]; then
echo "Set BLOB_READ_WRITE_TOKEN or VIEWER_VERCEL_BLOB_READ_WRITE_TOKEN before uploading to Vercel Blob." >&2
exit 1
fi
export VIEWER_ASSET_BACKEND="${VIEWER_ASSET_BACKEND:-vercel-blob}"
export VIEWER_VERCEL_BLOB_PREFIX="$DEFAULT_VIEWER_VERCEL_BLOB_PREFIX"
UPLOAD_DIR="$REPO_ROOT/models"
if [ "$#" -gt 0 ] && [[ "${1:-}" != --* ]]; then
UPLOAD_DIR="$1"
shift
fi
echo "Uploading viewer models catalog to Blob prefix: $VIEWER_VERCEL_BLOB_PREFIX"
npm --prefix "$REPO_ROOT/viewer" run upload:blob -- \
"$UPLOAD_DIR" \
"$@"