#!/bin/bash # 轻量版 Claude Code 环境变量部署脚本(基于 profiles.json) # 要求: # 1) 读取 profiles.json 展示可选列表 # 2) 选择后按照 env-deploy.sh 的参数写入:ANTHROPIC_BASE_URL、ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN(空) # 3) 略去不必要的环境检查,假定环境完备(含 jq、node 可用) # 4) 使用 Node 调用 /Users/kid/.claude/cc-aicodemirror-statusline-plus/save-cookie.js 传入所选 profile 的 cookie set -e BLUE='\033[0;34m' GREEN='\033[0;32m' RED='\033[1;31m' NC='\033[0m' SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROFILES_JSON="$SCRIPT_DIR/profiles.json" ANTHROPIC_BASE_URL="https://api.aicodemirror.com/api/claudecode" echo -e "\n${BLUE}========================================${NC}" echo -e "${BLUE}Claude Code Profile 部署${NC}" echo -e "${BLUE}========================================${NC}\n" # 读取 profiles.json 并展示列表 if [ ! -f "$PROFILES_JSON" ]; then echo -e "${RED}[ERROR]${NC} 未找到 profiles.json:$PROFILES_JSON" exit 1 fi COUNT=$(jq '.profiles | length' "$PROFILES_JSON") if [ "$COUNT" -eq 0 ]; then echo -e "${RED}[ERROR]${NC} profiles.json 中未找到任何 profiles" exit 1 fi echo -e "可用的 Profiles:" for ((i=0; i/dev/null || true sed -i.tmp -E '/^[[:space:]]*set[[:space:]]+-x[[:space:]]+ANTHROPIC_API_KEY/d' "$CONFIG_FILE" 2>/dev/null || true sed -i.tmp -E '/^[[:space:]]*set[[:space:]]+-x[[:space:]]+ANTHROPIC_AUTH_TOKEN/d' "$CONFIG_FILE" 2>/dev/null || true else sed -i.tmp -E '/^[[:space:]]*export[[:space:]]+ANTHROPIC_BASE_URL=/d' "$CONFIG_FILE" 2>/dev/null || true sed -i.tmp -E '/^[[:space:]]*export[[:space:]]+ANTHROPIC_API_KEY=/d' "$CONFIG_FILE" 2>/dev/null || true sed -i.tmp -E '/^[[:space:]]*export[[:space:]]+ANTHROPIC_AUTH_TOKEN=/d' "$CONFIG_FILE" 2>/dev/null || true fi rm -f "$CONFIG_FILE.tmp" 2>/dev/null || true fi # 追加新配置 if [[ "$CURRENT_SHELL" == "fish" ]]; then cat >> "$CONFIG_FILE" << EOF # Claude Code Environment Variables (auto from profiles) set -x ANTHROPIC_BASE_URL "$ANTHROPIC_BASE_URL" set -x ANTHROPIC_API_KEY "$API_KEY" set -x ANTHROPIC_AUTH_TOKEN "" # End Claude Code Environment Variables EOF else cat >> "$CONFIG_FILE" << EOF # Claude Code Environment Variables (auto from profiles) export ANTHROPIC_BASE_URL="$ANTHROPIC_BASE_URL" export ANTHROPIC_API_KEY="$API_KEY" export ANTHROPIC_AUTH_TOKEN="" # End Claude Code Environment Variables EOF fi # 立刻在当前会话导出 export ANTHROPIC_BASE_URL="$ANTHROPIC_BASE_URL" export ANTHROPIC_API_KEY="$API_KEY" export ANTHROPIC_AUTH_TOKEN="" echo -e "${GREEN}[OK]${NC} 已写入并激活环境变量:" echo "ANTHROPIC_BASE_URL=$ANTHROPIC_BASE_URL" echo "ANTHROPIC_API_KEY=****${API_KEY: -4}" echo "ANTHROPIC_AUTH_TOKEN=\"\"" # 调用 Node 脚本保存 cookie NODE_SCRIPT="/Users/kid/.claude/cc-aicodemirror-statusline-plus/save-cookie.js" if [ -f "$NODE_SCRIPT" ]; then node "$NODE_SCRIPT" "$COOKIE" echo -e "${GREEN}[OK]${NC} 已调用 Node 保存 cookie" else echo -e "${RED}[WARN]${NC} 未找到 Node 脚本:$NODE_SCRIPT,跳过保存 cookie" fi echo -e "\n${GREEN}完成!${NC} 新开终端会话即生效,或运行:source \"$CONFIG_FILE\"" exit 0