#!/bin/bash
set -euo pipefail
codex_dir="$HOME/.codex"
config_file="$codex_dir/config.toml"
token_file="$codex_dir/company-openlux-token"
mkdir -p "$codex_dir"
chmod 700 "$codex_dir"
if [ -f "$config_file" ] && grep -q '^\[model_providers\.company_openlux\]' "$config_file"; then
  printf '已有 company_openlux 配置，请联系管理员检查，未修改现有文件。\n'
  exit 1
fi
printf '请粘贴管理员发给你的个人密钥，然后按回车（输入不会显示）：'
IFS= read -rs personal_key
printf '\n'
case "$personal_key" in cg_*) ;; *) printf '密钥格式不正确，未修改配置。\n'; exit 1;; esac
umask 077
printf '%s' "$personal_key" > "$token_file"
chmod 600 "$token_file"
unset personal_key
backup_file=''
if [ -f "$config_file" ]; then
  backup_file="$config_file.backup.$(date +%Y%m%d%H%M%S)"
  cp -p "$config_file" "$backup_file"
fi
temporary_file="$(mktemp "$codex_dir/.gateway-config.XXXXXX")"
{
  printf 'model = "gpt-5.6-sol"\nmodel_provider = "company_openlux"\n\n'
  if [ -f "$config_file" ]; then
    awk 'BEGIN{section=0} /^\[/{section=1} {if(section || $0 !~ /^[[:space:]]*(model|model_provider)[[:space:]]*=/) print}' "$config_file"
    printf '\n'
  fi
  cat <<'TOML'
[model_providers.company_openlux]
name = "Company OpenLux Gateway"
base_url = "https://2231234.xyz/v1"
wire_api = "responses"

[model_providers.company_openlux.auth]
command = "/bin/sh"
args = ["-c", "cat \"$HOME/.codex/company-openlux-token\""]
refresh_interval_ms = 0
TOML
} > "$temporary_file"
chmod 600 "$temporary_file"
mv "$temporary_file" "$config_file"
printf '配置完成。请重新启动 Codex。\n'
if [ -n "$backup_file" ]; then printf '原配置备份：%s\n' "$backup_file"; fi
printf '按回车关闭窗口。'
IFS= read -r _
