Drawthings / model_download.sh
Semnykcz's picture
Create model_download.sh
1998750 verified
#!/usr/bin/env bash
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."