#!/usr/bin/env bash
set -euo pipefail

# Prefer a UTF-8 locale for bilingual prompts; avoid forcing LC_ALL on unusual systems.
if [ -z "${LANG:-}" ] || ! printf '%s' "${LANG:-}" | grep -qi 'utf-8\|utf8'; then
  export LANG="en_US.UTF-8"
fi
if [ -n "${LC_ALL:-}" ] && ! printf '%s' "$LC_ALL" | grep -qi 'utf-8\|utf8'; then
  unset LC_ALL
fi

JIMU_STEP="0/3 Start / 启动"

fail() {
  code="$?"
  echo
  echo "[ERROR] Step failed: $JIMU_STEP"
  echo "[错误] 失败步骤：$JIMU_STEP"
  echo "Setup did not finish successfully. / 安装配置没有完成。"
echo "Please fix the failed step above, then run this script again. Do not skip a failed step."
echo "请先修复上方失败步骤的问题，再重新运行脚本。不要跳过失败步骤继续下一步。"
  echo "Manual guide / 手动安装教程："
  echo "https://code.jimuxyz.com/dashboard/claudecode-installation/macos-linux"
  echo
  read -r -p "Press Enter to close / 按回车关闭..." || true
  exit "$code"
}
trap fail ERR

echo "=========================================="
echo "  JimuAI Claude Code Setup (macOS/Linux)"
echo "=========================================="
echo
echo "This script will / 本脚本将会："
echo "1. Check Node.js / npm / 检查 Node.js / npm"
echo "2. Install Claude Code CLI / 安装 Claude Code CLI"
echo "3. Write your JimuAI config / 写入积木AI配置"
echo

JIMU_STEP="1/3 Environment check / 环境检测"
echo "[1/3] Checking environment... / 正在检测环境..."
curl -fsSL https://code.jimuxyz.com/env_deploy/claude-install.sh | bash

echo
JIMU_STEP="2/3 Install Claude Code CLI / 安装 Claude Code CLI"
echo "[2/3] Installing Claude Code CLI... / 正在安装 Claude Code CLI..."
npm install -g @anthropic-ai/claude-code@latest --registry=https://registry.npmmirror.com

echo
JIMU_STEP="3/3 API Key input / 输入 API Key"
read -r -p "Paste your Claude Code API Key (sk-...) and press Enter / 粘贴你的 Claude Code API Key 后按回车: " JIMU_KEY
if [ -z "${JIMU_KEY:-}" ]; then
  echo "[ERROR] API Key is required. / 请填写 API Key。"
  false
fi
case "$JIMU_KEY" in
  sk-*) ;;
  *)
    echo "[ERROR] Invalid API Key. It must start with sk-."
    echo "[错误] Key 格式不对，必须以 sk- 开头。请确认你已经把占位符换成自己的真实 Key。"
    false
    ;;
esac

echo
JIMU_STEP="3/3 Write config / 写入配置"
echo "[3/3] Writing Claude Code CLI config... / 正在写入配置..."
curl -fsSL https://code.jimuxyz.com/env_deploy/claude-deploy.sh | bash -s -- "$JIMU_KEY"

trap - ERR
echo
echo "=========================================="
echo "[OK] Setup finished. / 安装配置完成。"
echo "Please fully close this terminal, VS Code/Cursor/editor, then reopen. / 请完全关闭当前终端、VS Code/Cursor/编辑器后重新打开。"
echo "Start with / 启动命令："
echo "  claude"
echo "=========================================="
echo
read -r -p "Press Enter to close / 按回车关闭..." || true
