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