|
|
#!/usr/bin/env bash |
|
|
set -euo pipefail |
|
|
|
|
|
|
|
|
|
|
|
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}" |
|
|
|
|
|
|
|
|
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:-<empty>} OPENAI_MODEL=${OPENAI_MODEL:-<empty>} OPENAI_API_KEY=${OPENAI_KEY_STATE}" |
|
|
|
|
|
|
|
|
cat >"${CONFIG_FILE}" <<EOF |
|
|
[meme] |
|
|
load_builtin_memes = false |
|
|
meme_dirs = [] |
|
|
|
|
|
[translate] |
|
|
provider = "${TRANSLATOR_PROVIDER:-}" |
|
|
openai_base_url = "${OPENAI_BASE_URL:-}" |
|
|
openai_api_key = "${OPENAI_API_KEY:-}" |
|
|
openai_model = "${OPENAI_MODEL:-}" |
|
|
|
|
|
[server] |
|
|
host = "0.0.0.0" |
|
|
port = ${PORT} |
|
|
|
|
|
[log] |
|
|
log_level = "INFO" |
|
|
EOF |
|
|
echo "[space] Wrote config to ${CONFIG_FILE}" |
|
|
|
|
|
|
|
|
if [ -n "${VIRTUAL_ENV:-}" ] && [ -x "${VIRTUAL_ENV}/bin/python" ]; then |
|
|
PY_BIN="${VIRTUAL_ENV}/bin/python" |
|
|
elif [ -x "/opt/venv/bin/python" ]; then |
|
|
PY_BIN="/opt/venv/bin/python" |
|
|
elif command -v python >/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 |
|
|
|