Private
Public Access
1
0

feat: 添加 VitePress 文档站和 Gitea CI 部署
Some checks failed
Deploy to Cloudflare Pages / deploy (push) Has been cancelled

- 新增 docs/ 目录,使用 VitePress 构建文档站
- 添加 .gitea/workflows/deploy.yaml,部署到 Cloudflare Pages
- 新增 setup.sh 一站式安装脚本(兼容 macOS bash 3.x)
- 修复 Gemini CLI 脚本认证头(改用 Authorization: Bearer)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-12 10:25:37 +08:00
parent 2314140bce
commit c97d3fbdbb
10 changed files with 1067 additions and 9 deletions

294
setup.sh Executable file
View File

@@ -0,0 +1,294 @@
#!/bin/bash
# XCodeCLI Setup Launcher (macOS / Linux)
# 一站式安装和配置 Claude Code, Gemini CLI, Codex
set -e
# ========== 颜色定义 ==========
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
# ========== 输出函数 ==========
info() { echo -e "${BLUE}[INFO]${NC} $1"; }
success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; }
error() { echo -e "${RED}[ERROR]${NC} $1"; }
# ========== 工具配置(兼容 bash 3.x==========
TOOL_NAMES_1="Claude Code"
TOOL_NAMES_2="Gemini CLI"
TOOL_NAMES_3="Codex"
TOOL_CMDS_1="claude"
TOOL_CMDS_2="gemini"
TOOL_CMDS_3="codex"
TOOL_PKGS_1="@anthropic-ai/claude-code"
TOOL_PKGS_2="@google/gemini-cli@latest"
TOOL_PKGS_3="@openai/codex"
TOOL_URLS_1="https://gitea.sususu.cf/sususu/xcodecli-shells/raw/branch/main/ClaudeCode/setup-claude-code.sh"
TOOL_URLS_2="https://gitea.sususu.cf/sususu/xcodecli-shells/raw/branch/main/GeminiCLI/setup-gemini.sh"
TOOL_URLS_3="https://gitea.sususu.cf/sususu/xcodecli-shells/raw/branch/main/codex/setup-codex.sh"
# Helper functions to get tool properties
get_tool_name() { eval echo \"\$TOOL_NAMES_$1\"; }
get_tool_cmd() { eval echo \"\$TOOL_CMDS_$1\"; }
get_tool_pkg() { eval echo \"\$TOOL_PKGS_$1\"; }
get_tool_url() { eval echo \"\$TOOL_URLS_$1\"; }
# ========== 帮助信息 ==========
show_help() {
cat << 'EOF'
XCodeCLI Setup Launcher (macOS / Linux)
一站式安装和配置 Claude Code, Gemini CLI, Codex
Usage: ./setup.sh [OPTIONS]
Options:
--key <KEY> 预设 API 密钥(必填)
--help 显示此帮助信息
一行命令快速使用:
API_KEY='YOUR_API_KEY' bash -c "$(curl -fsSL https://gitea.sususu.cf/sususu/xcodecli-shells/raw/branch/main/setup.sh)"
EOF
exit 0
}
# ========== 命令检测 ==========
command_exists() {
command -v "$1" &> /dev/null
}
# ========== 获取包管理器 ==========
get_package_manager() {
if command_exists node; then
local node_version=$(node --version 2>/dev/null | sed 's/v//')
info "检测到 Node.js v$node_version"
echo "npm"
return 0
fi
if command_exists bun; then
local bun_version=$(bun --version 2>/dev/null)
info "检测到 Bun v$bun_version"
echo "bun"
return 0
fi
return 1
}
# ========== 安装 Bun ==========
install_bun() {
echo ""
warning "未检测到 Node.js 或 Bun"
info "推荐安装 Bun轻量级 JavaScript 运行时)"
echo ""
echo -e " 安装命令: ${CYAN}curl -fsSL https://bun.sh/install | bash${NC}"
echo ""
read -p "是否立即安装 Bun? (Y/n) " -n 1 -r
echo ""
if [[ $REPLY =~ ^[Nn]$ ]]; then
return 1
fi
info "正在安装 Bun..."
if curl -fsSL https://bun.sh/install | bash; then
# 刷新 PATH
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"
if command_exists bun; then
success "Bun 安装成功!"
return 0
else
warning "Bun 可能已安装,但需要重新打开终端才能生效"
info "请重新打开终端后再运行此脚本"
return 1
fi
else
error "Bun 安装失败"
return 1
fi
}
# ========== 安装工具 ==========
install_tool() {
local tool_num=$1
local pm=$2
local tool_name=$(get_tool_name "$tool_num")
local tool_pkg=$(get_tool_pkg "$tool_num")
info "安装 $tool_name..."
local install_cmd=""
if [[ "$pm" == "npm" ]]; then
install_cmd="npm install -g $tool_pkg"
else
install_cmd="bun add -g $tool_pkg"
fi
echo -e " 执行: ${CYAN}$install_cmd${NC}"
if eval "$install_cmd"; then
hash -r 2>/dev/null || true
success "$tool_name 安装成功!"
return 0
else
error "$tool_name 安装失败"
return 1
fi
}
# ========== 配置工具 ==========
configure_tool() {
local tool_num=$1
local api_key=$2
local tool_name=$(get_tool_name "$tool_num")
local setup_url=$(get_tool_url "$tool_num")
info "配置 $tool_name..."
if API_KEY="$api_key" bash -c "$(curl -fsSL "$setup_url")"; then
success "$tool_name 配置完成!"
return 0
else
error "$tool_name 配置失败"
return 1
fi
}
# ========== 显示状态 ==========
show_status() {
echo ""
echo -e "${CYAN}========================================${NC}"
echo -e "${CYAN} XCodeCLI Setup Launcher${NC}"
echo -e "${CYAN}========================================${NC}"
echo ""
echo -e "${YELLOW}工具安装状态:${NC}"
echo ""
for i in 1 2 3; do
local tool_name=$(get_tool_name "$i")
local tool_cmd=$(get_tool_cmd "$i")
local status
local color
if command_exists "$tool_cmd"; then
status="[已安装]"
color="${GREEN}"
else
status="[未安装]"
color="${RED}"
fi
printf " %-12s %b%s%b\n" "$tool_name" "$color" "$status" "$NC"
done
echo ""
}
# ========== 主函数 ==========
main() {
local api_key="${API_KEY:-}"
# 解析参数
while [[ $# -gt 0 ]]; do
case $1 in
--key)
api_key="$2"
shift 2
;;
--help|-h)
show_help
;;
*)
shift
;;
esac
done
# 显示状态
show_status
# 检查 API Key
if [[ -z "$api_key" ]]; then
echo -e "${YELLOW}请输入 API 密钥:${NC}"
read -r api_key
if [[ -z "$api_key" ]]; then
error "API 密钥不能为空"
exit 1
fi
fi
info "API 密钥: ${api_key:0:8}..."
echo ""
# 获取包管理器
local pm=$(get_package_manager)
if [[ -z "$pm" ]]; then
if ! install_bun; then
exit 1
fi
pm=$(get_package_manager)
if [[ -z "$pm" ]]; then
error "仍未检测到可用的包管理器"
exit 1
fi
fi
echo ""
echo -e "${CYAN}========================================${NC}"
echo -e "${CYAN} 开始安装和配置所有工具${NC}"
echo -e "${CYAN}========================================${NC}"
echo ""
local failed=0
# 安装和配置每个工具
for i in 1 2 3; do
local tool_name=$(get_tool_name "$i")
local tool_cmd=$(get_tool_cmd "$i")
echo ""
echo -e "${YELLOW}>>> [$i/3] $tool_name${NC}"
echo ""
# 检测是否已安装
if ! command_exists "$tool_cmd"; then
if ! install_tool "$i" "$pm"; then
failed=$((failed + 1))
continue
fi
else
info "$tool_name 已安装,跳过安装步骤"
fi
# 配置工具
if ! configure_tool "$i" "$api_key"; then
failed=$((failed + 1))
fi
done
# 显示结果
echo ""
echo -e "${CYAN}========================================${NC}"
echo -e "${CYAN} 配置完成${NC}"
echo -e "${CYAN}========================================${NC}"
echo ""
if [[ $failed -eq 0 ]]; then
success "所有工具安装配置成功!"
else
warning "$failed 个工具配置失败"
fi
echo ""
show_status
}
main "$@"