Spaces:
Sleeping
Sleeping
| set -euo pipefail | |
| MODELS_DIR="${MODELS_DIR:-/grpc-models}" | |
| URLS="${MODEL_URLS:-}" | |
| # Accept comma/newline/space separated URLs | |
| if [[ -z "$URLS" ]]; then | |
| echo "[models] No MODEL_URLS provided. Skipping downloads." | |
| exit 0 | |
| fi | |
| mkdir -p "$MODELS_DIR" | |
| echo "$URLS" | tr ', ' '\n' | while read -r URL; do | |
| [[ -z "$URL" ]] && continue | |
| echo "[models] Fetching: $URL" | |
| # Keep the original filename if possible | |
| FNAME="$(basename "$URL")" | |
| TMP="/tmp/${FNAME}.part" | |
| # Basic download (supports HTTP(S)) | |
| curl -L --fail --retry 3 -o "$TMP" "$URL" | |
| # Move into MODELS_DIR after successful download | |
| mv "$TMP" "${MODELS_DIR}/${FNAME}" | |
| # Optional: auto-extract archives | |
| case "$FNAME" in | |
| *.zip) echo "[models] Unzipping $FNAME"; unzip -o "${MODELS_DIR}/${FNAME}" -d "${MODELS_DIR}" ;; | |
| *.tar.gz|*.tgz) echo "[models] Untarring $FNAME"; tar -xzf "${MODELS_DIR}/${FNAME}" -C "${MODELS_DIR}" ;; | |
| *.xz) echo "[models] Unxz $FNAME"; xz -d -k "${MODELS_DIR}/${FNAME}" ;; | |
| esac | |
| done | |
| echo "[models] Done." |