Spaces:
Running
Running
| # Parse models.yaml and generate .env for docker-compose | |
| # Usage: ./gen-env.sh [MODELS_ROOT] | |
| # MODELS_ROOT defaults to $MODELS_ROOT env var | |
| MODELS_ROOT="${1:-${MODELS_ROOT:-}}" | |
| if [ -z "$MODELS_ROOT" ]; then | |
| echo "Usage: ./gen-env.sh <MODELS_ROOT>" >&2 | |
| echo " or set MODELS_ROOT env var" >&2 | |
| exit 1 | |
| fi | |
| YAML="$MODELS_ROOT/starry-dist/models.yaml" | |
| if [ ! -f "$YAML" ]; then | |
| echo "Error: $YAML not found" >&2 | |
| exit 1 | |
| fi | |
| ENV_FILE="$(dirname "$0")/.env" | |
| # Extract values by parsing the simple YAML structure | |
| # Each top-level key block: read path/config fields | |
| current_key="" | |
| { | |
| echo "# Auto-generated from models.yaml — do not edit manually" | |
| echo "# Regenerate with: ./gen-env.sh $MODELS_ROOT" | |
| echo "" | |
| echo "MODELS_ROOT=$MODELS_ROOT" | |
| while IFS= read -r line; do | |
| # Skip comments and empty lines | |
| case "$line" in \#*|"") continue ;; esac | |
| # Top-level key (no leading whitespace) | |
| if echo "$line" | grep -qE '^[a-z][a-z0-9_]*:'; then | |
| current_key=$(echo "$line" | sed 's/:.*//' | tr 'a-z' 'A-Z') | |
| continue | |
| fi | |
| [ -z "$current_key" ] && continue | |
| # Extract path: value | |
| val=$(echo "$line" | sed -n 's/^ *path: *//p') | |
| if [ -n "$val" ]; then | |
| echo "${current_key}_MODEL_PATH=$val" | |
| fi | |
| # Extract config: value | |
| val=$(echo "$line" | sed -n 's/^ *config: *//p') | |
| if [ -n "$val" ]; then | |
| echo "${current_key}_CONFIG=$val" | |
| fi | |
| done < "$YAML" | |
| } > "$ENV_FILE" | |
| echo "Generated $ENV_FILE" | |
| cat "$ENV_FILE" | |