File size: 1,308 Bytes
35205e8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #!/usr/bin/env bash
set -euo pipefail
export CHATGPT_LOCAL_HOME="${CHATGPT_LOCAL_HOME:-/data}"
# If AUTH_JSON is provided as an environment variable, write it to auth.json
if [[ -n "${AUTH_JSON:-}" ]]; then
echo "Setting up auth from AUTH_JSON environment variable..."
mkdir -p "$CHATGPT_LOCAL_HOME"
echo "$AUTH_JSON" > "$CHATGPT_LOCAL_HOME/auth.json"
chmod 600 "$CHATGPT_LOCAL_HOME/auth.json"
fi
cmd="${1:-serve}"
shift || true
bool() {
case "${1:-}" in
1|true|TRUE|yes|YES|on|ON) return 0;;
*) return 1;;
esac
}
if [[ "$cmd" == "serve" ]]; then
# Hugging Face Spaces expects port 7860
PORT="${PORT:-7860}"
ARGS=(serve --host 0.0.0.0 --port "${PORT}")
if bool "${VERBOSE:-}" || bool "${CHATGPT_LOCAL_VERBOSE:-}"; then
ARGS+=(--verbose)
fi
if bool "${VERBOSE_OBFUSCATION:-}" || bool "${CHATGPT_LOCAL_VERBOSE_OBFUSCATION:-}"; then
ARGS+=(--verbose-obfuscation)
fi
if bool "${FAST_MODE:-}" || bool "${CHATGPT_LOCAL_FAST_MODE:-}"; then
ARGS+=(--fast-mode)
fi
if [[ "$#" -gt 0 ]]; then
ARGS+=("$@")
fi
exec chatmock "${ARGS[@]}"
elif [[ "$cmd" == "login" ]]; then
ARGS=(login --no-browser)
if bool "${VERBOSE:-}" || bool "${CHATGPT_LOCAL_VERBOSE:-}"; then
ARGS+=(--verbose)
fi
exec chatmock "${ARGS[@]}"
else
exec "$cmd" "$@"
fi
|