#!/usr/bin/env bash set -euo pipefail # Ensure a predictable and writable config location for meme_generator # Default to /tmp/config (writable). Allow override via XDG_CONFIG_HOME. export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-/tmp/config}" CONFIG_DIR="${XDG_CONFIG_HOME}/meme_generator" CONFIG_FILE="${CONFIG_DIR}/config.toml" mkdir -p "${CONFIG_DIR}" PORT="${PORT:-7860}" MEME_DATA_DIR="${MEME_DATA_DIR:-/app/data}" # Snapshot translator env for logs (no secrets printed) PROV="${TRANSLATOR_PROVIDER:-}" OPENAI_KEY_STATE="missing" if [ -n "${OPENAI_API_KEY:-}" ]; then OPENAI_KEY_STATE="present"; fi echo "[space] PORT=${PORT} MEME_DATA_DIR=${MEME_DATA_DIR}" echo "[space] Translator env: provider=${PROV:-auto} OPENAI_BASE_URL=${OPENAI_BASE_URL:-} OPENAI_MODEL=${OPENAI_MODEL:-} OPENAI_API_KEY=${OPENAI_KEY_STATE}" # Write minimal config to defer builtin load and set server defaults cat >"${CONFIG_FILE}" </dev/null 2>&1; then PY_BIN="$(command -v python)" elif command -v python3 >/dev/null 2>&1; then PY_BIN="$(command -v python3)" else echo "[space] Error: no python interpreter found (virtualenv/python/python3)" >&2 exit 1 fi echo "[space] Using interpreter: ${PY_BIN}" exec "${PY_BIN}" -u /workspace/bootstrap.py