#!/bin/bash set -e echo "=========================================" echo "Polyglot Backend Startup" echo "=========================================" # Check if app directory has any files (not just exists but is populated) if [ ! -d "/app/app" ] || [ -z "$(ls -A /app/app 2>/dev/null)" ]; then echo "App code not found. Downloading from private code space..." # Check for required environment variables if [ -z "$CODE_SPACE_ID" ]; then echo "ERROR: CODE_SPACE_ID environment variable not set" echo "Please set it in Space secrets" exit 1 fi if [ -z "$HUGGING_FACE_HUB_TOKEN" ]; then echo "ERROR: HUGGING_FACE_HUB_TOKEN environment variable not set" echo "Please set it in Space secrets" exit 1 fi echo "Downloading code from: $CODE_SPACE_ID" python download_code.py "$CODE_SPACE_ID" "$HUGGING_FACE_HUB_TOKEN" if [ ! -d "/app/app" ]; then echo "ERROR: Code download failed" exit 1 fi echo "OK Code downloaded successfully" else echo "App code already present, skipping download" fi echo "=========================================" echo "Starting uvicorn server..." echo "=========================================" # Start the application exec uvicorn app.main:socket_app --host 0.0.0.0 --port 7860