feat: rm useless script file

This commit is contained in:
2025-11-05 15:54:22 +08:00
parent 2d68446059
commit 25c817909c

View File

@@ -1,327 +0,0 @@
#!/bin/bash
# Claude Code Environment Setup Script
# Author: Claude Assistant
# Purpose: Automatically configure environment variables for Claude Code on macOS and Linux
set -e # Exit on error
# Colors for output
RED='\033[1;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Function to print colored output
print_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
print_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
# Function to display current environment variables
display_current_env() {
print_info "当前环境变量状态:"
echo -e "${BLUE}----------------------------------------${NC}"
# Get current shell type for proper variable display
CURRENT_SHELL=$(basename "$SHELL")
if [[ "$CURRENT_SHELL" == "fish" ]]; then
# Fish shell syntax
echo "ANTHROPIC_BASE_URL=$(set -q ANTHROPIC_BASE_URL && echo $ANTHROPIC_BASE_URL || echo '(未设置)')"
echo "ANTHROPIC_API_KEY=$(set -q ANTHROPIC_API_KEY && echo '****'${ANTHROPIC_API_KEY: -4} || echo '(未设置)')"
echo "ANTHROPIC_AUTH_TOKEN=$(set -q ANTHROPIC_AUTH_TOKEN && echo $ANTHROPIC_AUTH_TOKEN || echo '(未设置)')"
else
# Bash/Zsh syntax
if [ -n "$ANTHROPIC_BASE_URL" ]; then
echo "ANTHROPIC_BASE_URL=$ANTHROPIC_BASE_URL"
else
echo "ANTHROPIC_BASE_URL=(未设置)"
fi
if [ -n "$ANTHROPIC_API_KEY" ]; then
echo "ANTHROPIC_API_KEY=****${ANTHROPIC_API_KEY: -4}"
else
echo "ANTHROPIC_API_KEY=(未设置)"
fi
if [ -n "$ANTHROPIC_AUTH_TOKEN" ]; then
echo "ANTHROPIC_AUTH_TOKEN=$ANTHROPIC_AUTH_TOKEN"
else
echo "ANTHROPIC_AUTH_TOKEN=(未设置)"
fi
fi
echo -e "${BLUE}----------------------------------------${NC}"
}
# Header
echo -e "\n${BLUE}========================================${NC}"
echo -e "${BLUE}Claude Code Environment Setup${NC}"
echo -e "${BLUE}========================================${NC}\n"
# Display current environment variables before any changes
display_current_env
echo
# Check if API key is provided as argument
if [ $# -eq 0 ]; then
print_error "请提供API密钥作为参数"
echo "使用方法: $0 <your-api-key>"
exit 1
fi
ANTHROPIC_API_KEY="$1"
ANTHROPIC_BASE_URL="https://api.aicodemirror.com/api/claudecode"
# Detect OS and shell
detect_os_and_shell() {
print_info "检测操作系统和Shell环境..."
# Detect OS
if [[ "$OSTYPE" == "darwin"* ]]; then
OS="macOS"
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
OS="Linux"
else
print_error "不支持的操作系统: $OSTYPE"
exit 1
fi
# Detect Shell
CURRENT_SHELL=$(basename "$SHELL")
# Determine config file based on shell
case "$CURRENT_SHELL" in
bash)
if [[ "$OS" == "macOS" ]]; then
CONFIG_FILE="$HOME/.bash_profile"
else
CONFIG_FILE="$HOME/.bashrc"
fi
;;
zsh)
CONFIG_FILE="$HOME/.zshrc"
;;
fish)
CONFIG_FILE="$HOME/.config/fish/config.fish"
;;
*)
print_error "不支持的Shell: $CURRENT_SHELL"
exit 1
;;
esac
print_success "检测完成 - 系统: $OS, Shell: $CURRENT_SHELL"
print_info "配置文件: $CONFIG_FILE"
}
# Function to add environment variables to config file
add_env_vars() {
print_info "开始配置环境变量..."
# Create backup
if [ -f "$CONFIG_FILE" ]; then
cp "$CONFIG_FILE" "$CONFIG_FILE.backup.$(date +%Y%m%d_%H%M%S)"
print_info "已备份原配置文件"
fi
# Check if variables already exist
if grep -q "ANTHROPIC_BASE_URL" "$CONFIG_FILE" 2>/dev/null || grep -q "ANTHROPIC_API_KEY" "$CONFIG_FILE" 2>/dev/null; then
print_warning "检测到已存在的Claude Code环境变量配置"
print_info "正在清理所有现有配置..."
# Remove ALL existing ANTHROPIC environment variable configurations
# For bash/zsh: export VARIABLE=...
# For fish: set -x VARIABLE ...
if [[ "$CURRENT_SHELL" == "fish" ]]; then
# Fish shell: remove 'set -x VARIABLE ...' patterns
# Using -E for extended regex on macOS/BSD sed
sed -i.tmp -E '/^[[:space:]]*set[[:space:]]+-x[[:space:]]+ANTHROPIC_BASE_URL/d' "$CONFIG_FILE" 2>/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
# Bash/Zsh: remove 'export VARIABLE=...' patterns
# Using -E for extended regex on macOS/BSD sed
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
# Also remove the marked sections for backward compatibility
sed -i.tmp '/# Claude Code Environment Variables/,/# End Claude Code Environment Variables/d' "$CONFIG_FILE" 2>/dev/null || true
# Clean up temporary files
rm -f "$CONFIG_FILE.tmp"
print_success "已彻底清理所有旧配置,准备写入新配置"
fi
# Add environment variables based on shell type
if [[ "$CURRENT_SHELL" == "fish" ]]; then
cat >> "$CONFIG_FILE" << EOF
# Claude Code Environment Variables
set -x ANTHROPIC_BASE_URL "$ANTHROPIC_BASE_URL"
set -x ANTHROPIC_API_KEY "$ANTHROPIC_API_KEY"
set -x ANTHROPIC_AUTH_TOKEN ""
# End Claude Code Environment Variables
EOF
else
cat >> "$CONFIG_FILE" << EOF
# Claude Code Environment Variables
export ANTHROPIC_BASE_URL="$ANTHROPIC_BASE_URL"
export ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY"
export ANTHROPIC_AUTH_TOKEN=""
# End Claude Code Environment Variables
EOF
fi
print_success "环境变量已写入配置文件"
}
# Function to update .claude.json
update_claude_json() {
print_info "更新 ~/.claude.json 配置..."
# Check if jq is installed
if ! command -v jq &> /dev/null; then
print_error "需要安装 jq 工具"
if [[ "$OS" == "macOS" ]]; then
print_info "请运行: brew install jq"
else
print_info "请运行: sudo apt-get install jq (Ubuntu/Debian) 或 sudo yum install jq (CentOS/RHEL)"
fi
return 1
fi
# Execute the jq command
print_info "添加API密钥到Claude配置..."
# Get the last 20 characters of the API key
KEY_SUFFIX="${ANTHROPIC_API_KEY: -20}"
# Create .claude.json if it doesn't exist
if [ ! -f "$HOME/.claude.json" ]; then
echo '{}' > "$HOME/.claude.json"
print_info "创建新的 ~/.claude.json 文件"
fi
# Update the JSON file
if (cat ~/.claude.json 2>/dev/null || echo 'null') | jq --arg key "$KEY_SUFFIX" '(. // {}) | .customApiKeyResponses.approved |= ([.[]?, $key] | unique)' > ~/.claude.json.tmp; then
mv ~/.claude.json.tmp ~/.claude.json
print_success "Claude配置已更新"
# Display the updated customApiKeyResponses
print_info "更新后的 customApiKeyResponses 内容:"
echo -e "${BLUE}----------------------------------------${NC}"
jq '.customApiKeyResponses' ~/.claude.json 2>/dev/null || echo "{}"
echo -e "${BLUE}----------------------------------------${NC}"
else
print_error "更新Claude配置失败"
rm -f ~/.claude.json.tmp
return 1
fi
}
# Function to source the config file
activate_config() {
print_info "激活配置..."
# Export variables for current session
export ANTHROPIC_BASE_URL="$ANTHROPIC_BASE_URL"
export ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY"
export ANTHROPIC_AUTH_TOKEN=""
print_success "环境变量已在当前会话中激活"
print_info "要在新的终端会话中使用,请运行以下命令:"
if [[ "$CURRENT_SHELL" == "fish" ]]; then
echo -e "${GREEN}source $CONFIG_FILE${NC}"
else
echo -e "${GREEN}source $CONFIG_FILE${NC}"
fi
print_info "或者重新打开终端窗口"
}
# Function to verify configuration
verify_config() {
print_info "验证配置..."
# Check if variables are set
if [ -n "$ANTHROPIC_BASE_URL" ] && [ -n "$ANTHROPIC_API_KEY" ]; then
print_success "环境变量验证成功"
echo "ANTHROPIC_BASE_URL: $ANTHROPIC_BASE_URL"
echo "ANTHROPIC_API_KEY: ****${ANTHROPIC_API_KEY: -4}"
echo "ANTHROPIC_AUTH_TOKEN: ${ANTHROPIC_AUTH_TOKEN:-\"\"}"
else
print_error "环境变量验证失败"
return 1
fi
# Check .claude.json
if [ -f "$HOME/.claude.json" ]; then
if jq -e '.customApiKeyResponses.approved' "$HOME/.claude.json" &>/dev/null; then
print_success "Claude配置文件验证成功"
else
print_warning "Claude配置文件存在但可能不完整"
fi
else
print_error "Claude配置文件不存在"
fi
}
# Main execution
main() {
# Step 1: Detect OS and Shell
detect_os_and_shell
echo
# Step 2: Add environment variables
add_env_vars
echo
# Step 3: Update .claude.json
update_claude_json
echo
# Step 4: Activate configuration
activate_config
echo
# Step 5: Verify configuration
verify_config
echo
print_success "Claude Code环境配置完成"
echo -e "${BLUE}========================================${NC}"
# Important reminder in red
echo
echo -e "${RED}╔══════════════════════════════════════════════════════════╗${NC}"
echo -e "${RED}║ ║${NC}"
echo -e "${RED}║ 请关闭终端后重新打开,开始 claude code 使用~ ║${NC}"
echo -e "${RED}║ ║${NC}"
echo -e "${RED}╚══════════════════════════════════════════════════════════╝${NC}"
echo
}
# Run main function
main
# Exit successfully
exit 0