feat: 重构 setup.ps1 为一站式安装配置脚本
- 新增包管理器检测(Node.js/npm 和 Bun) - 新增 Bun 安装引导功能 - 新增工具安装功能(通过 npm/bun 安装 CLI 工具) - 支持从远程下载并执行配置脚本 - 移除 Claude Code 配置中的默认 model 设置
This commit is contained in:
@@ -174,21 +174,21 @@ create_codex_config() {
|
||||
|
||||
# Create config.toml
|
||||
cat > "$HOME/.codex/config.toml" << EOF
|
||||
model_provider = "apirouter"
|
||||
model_provider = "xcodecli"
|
||||
model = "gpt-5-codex"
|
||||
model_reasoning_effort = "high"
|
||||
|
||||
[model_providers.apirouter]
|
||||
name = "apirouter"
|
||||
[model_providers.xcodecli]
|
||||
name = "xcodecli"
|
||||
base_url = "${base_url}/v1"
|
||||
wire_api = "responses"
|
||||
env_key = "APIROUTER_API_KEY"
|
||||
env_key = "XCODECLI_API_KEY"
|
||||
EOF
|
||||
|
||||
cat > "$HOME/.codex/auth.json" << EOF
|
||||
{
|
||||
"OPENAI_API_KEY": "$api_key",
|
||||
"APIROUTER_API_KEY": "$api_key"
|
||||
"XCODECLI_API_KEY": "$api_key"
|
||||
}
|
||||
EOF
|
||||
|
||||
@@ -202,7 +202,7 @@ set_environment_variable() {
|
||||
local api_key="$1"
|
||||
|
||||
# Export for current session
|
||||
export APIROUTER_API_KEY="$api_key"
|
||||
export XCODECLI_API_KEY="$api_key"
|
||||
|
||||
# Detect shell and add to appropriate config file
|
||||
local shell_config=""
|
||||
@@ -244,40 +244,40 @@ set_environment_variable() {
|
||||
# Handle Fish shell differently (uses 'set -x' instead of 'export')
|
||||
if [ "$shell_name" = "fish" ] || [[ "$shell_config" == *"fish"* ]]; then
|
||||
# Fish shell syntax
|
||||
if [ -f "$shell_config" ] && grep -q "set -x APIROUTER_API_KEY" "$shell_config"; then
|
||||
if [ -f "$shell_config" ] && grep -q "set -x XCODECLI_API_KEY" "$shell_config"; then
|
||||
# Update existing
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
sed -i '' "s/set -x APIROUTER_API_KEY.*/set -x APIROUTER_API_KEY \"$api_key\"/" "$shell_config"
|
||||
sed -i '' "s/set -x XCODECLI_API_KEY.*/set -x XCODECLI_API_KEY \"$api_key\"/" "$shell_config"
|
||||
else
|
||||
sed -i "s/set -x APIROUTER_API_KEY.*/set -x APIROUTER_API_KEY \"$api_key\"/" "$shell_config"
|
||||
sed -i "s/set -x XCODECLI_API_KEY.*/set -x XCODECLI_API_KEY \"$api_key\"/" "$shell_config"
|
||||
fi
|
||||
print_info "Updated APIROUTER_API_KEY in $shell_config"
|
||||
print_info "Updated XCODECLI_API_KEY in $shell_config"
|
||||
else
|
||||
# Add new
|
||||
mkdir -p "$(dirname "$shell_config")"
|
||||
echo "" >> "$shell_config"
|
||||
echo "# API Router API key for Codex" >> "$shell_config"
|
||||
echo "set -x APIROUTER_API_KEY \"$api_key\"" >> "$shell_config"
|
||||
print_info "Added APIROUTER_API_KEY to $shell_config"
|
||||
echo "set -x XCODECLI_API_KEY \"$api_key\"" >> "$shell_config"
|
||||
print_info "Added XCODECLI_API_KEY to $shell_config"
|
||||
fi
|
||||
else
|
||||
# Bash/Zsh/sh syntax
|
||||
if [ -f "$shell_config" ] && grep -q "export APIROUTER_API_KEY=" "$shell_config"; then
|
||||
if [ -f "$shell_config" ] && grep -q "export XCODECLI_API_KEY=" "$shell_config"; then
|
||||
# Update existing
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# macOS
|
||||
sed -i '' "s/export APIROUTER_API_KEY=.*/export APIROUTER_API_KEY=\"$api_key\"/" "$shell_config"
|
||||
sed -i '' "s/export XCODECLI_API_KEY=.*/export XCODECLI_API_KEY=\"$api_key\"/" "$shell_config"
|
||||
else
|
||||
# Linux
|
||||
sed -i "s/export APIROUTER_API_KEY=.*/export APIROUTER_API_KEY=\"$api_key\"/" "$shell_config"
|
||||
sed -i "s/export XCODECLI_API_KEY=.*/export XCODECLI_API_KEY=\"$api_key\"/" "$shell_config"
|
||||
fi
|
||||
print_info "Updated APIROUTER_API_KEY in $shell_config"
|
||||
print_info "Updated XCODECLI_API_KEY in $shell_config"
|
||||
else
|
||||
# Add new
|
||||
echo "" >> "$shell_config"
|
||||
echo "# API Router API key for Codex" >> "$shell_config"
|
||||
echo "export APIROUTER_API_KEY=\"$api_key\"" >> "$shell_config"
|
||||
print_info "Added APIROUTER_API_KEY to $shell_config"
|
||||
echo "export XCODECLI_API_KEY=\"$api_key\"" >> "$shell_config"
|
||||
print_info "Added XCODECLI_API_KEY to $shell_config"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -301,11 +301,11 @@ show_current_settings() {
|
||||
echo "----------------------------------------"
|
||||
print_info "Environment variable:"
|
||||
|
||||
if [ ! -z "$APIROUTER_API_KEY" ]; then
|
||||
local masked_key="${APIROUTER_API_KEY:0:8}...${APIROUTER_API_KEY: -4}"
|
||||
print_info "APIROUTER_API_KEY: $masked_key"
|
||||
if [ ! -z "$XCODECLI_API_KEY" ]; then
|
||||
local masked_key="${XCODECLI_API_KEY:0:8}...${XCODECLI_API_KEY: -4}"
|
||||
print_info "XCODECLI_API_KEY: $masked_key"
|
||||
else
|
||||
print_info "APIROUTER_API_KEY: (not set)"
|
||||
print_info "XCODECLI_API_KEY: (not set)"
|
||||
fi
|
||||
|
||||
echo "----------------------------------------"
|
||||
@@ -393,7 +393,7 @@ main() {
|
||||
# Set environment variable
|
||||
if ! set_environment_variable "$API_KEY"; then
|
||||
print_warning "Failed to set environment variable automatically"
|
||||
print_info "Please set manually: export APIROUTER_API_KEY=\"$API_KEY\""
|
||||
print_info "Please set manually: export XCODECLI_API_KEY=\"$API_KEY\""
|
||||
fi
|
||||
|
||||
echo ""
|
||||
@@ -405,9 +405,9 @@ main() {
|
||||
# Provide correct command based on detected shell
|
||||
local current_shell=$(basename "$SHELL" 2>/dev/null || echo "bash")
|
||||
if [ "$current_shell" = "fish" ]; then
|
||||
print_info " set -x APIROUTER_API_KEY \"$API_KEY\""
|
||||
print_info " set -x XCODECLI_API_KEY \"$API_KEY\""
|
||||
else
|
||||
print_info " export APIROUTER_API_KEY=\"$API_KEY\""
|
||||
print_info " export XCODECLI_API_KEY=\"$API_KEY\""
|
||||
fi
|
||||
print_info "Or restart your terminal."
|
||||
print_info ""
|
||||
|
||||
Reference in New Issue
Block a user