#!/bin/bash # Cursor2API启动脚本 set -e # 定义颜色代码 RED='\033[0;31m' GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' PURPLE='\033[0;35m' CYAN='\033[0;36m' WHITE='\033[1;37m' NC='\033[0m' # No Color # 打印标题 print_header() { echo "" echo -e "${CYAN}=========================================${NC}" echo -e "${WHITE} 🚀 Cursor2API启动器${NC}" echo -e "${CYAN}=========================================${NC}" } # 检查Go环境 check_go() { if ! command -v go &> /dev/null; then echo -e "${RED}❌ Go 未安装,请先安装 Go 1.21 或更高版本${NC}" echo -e "${YELLOW}💡 安装方法: https://golang.org/dl/${NC}" exit 1 fi GO_VERSION=$(go version | awk '{print $3}' | sed 's/go//') REQUIRED_VERSION="1.21" if [ "$(printf '%s\n' "$REQUIRED_VERSION" "$GO_VERSION" | sort -V | head -n1)" != "$REQUIRED_VERSION" ]; then echo -e "${RED}❌ Go 版本 $GO_VERSION 过低,请安装 Go $REQUIRED_VERSION 或更高版本${NC}" exit 1 fi echo -e "${GREEN}✅ Go 版本检查通过: $GO_VERSION${NC}" } # 检查Node.js环境 check_nodejs() { if ! command -v node &> /dev/null; then echo -e "${RED}❌ Node.js 未安装,请先安装 Node.js 18 或更高版本${NC}" echo -e "${YELLOW}💡 安装方法: https://nodejs.org/${NC}" exit 1 fi NODE_VERSION=$(node --version | sed 's/v//') REQUIRED_VERSION="18.0.0" if [ "$(printf '%s\n' "$REQUIRED_VERSION" "$NODE_VERSION" | sort -V | head -n1)" != "$REQUIRED_VERSION" ]; then echo -e "${RED}❌ Node.js 版本 $NODE_VERSION 过低,请安装 Node.js $REQUIRED_VERSION 或更高版本${NC}" exit 1 fi echo -e "${GREEN}✅ Node.js 版本检查通过: $NODE_VERSION${NC}" } # 处理环境配置 setup_env() { if [ ! -f .env ]; then echo -e "${YELLOW}📝 创建默认 .env 配置文件...${NC}" cat > .env << EOF # 服务器配置 PORT=8002 DEBUG=false # API配置 API_KEY=0000 MODELS=claude-sonnet-4.6 SYSTEM_PROMPT_INJECT= # 请求配置 TIMEOUT=30 USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 # Cursor配置 SCRIPT_URL=https://cursor.com/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/a-4-a/c.js?i=0&v=3&h=cursor.com EOF echo -e "${GREEN}✅ 默认 .env 文件已创建${NC}" else echo -e "${GREEN}✅ 配置文件 .env 已存在${NC}" fi } # 构建应用 build_app() { echo -e "${BLUE}📦 正在下载 Go 依赖...${NC}" go mod download echo -e "${BLUE}🔨 正在编译 Go 应用...${NC}" go build -o cursor2api-go . if [ ! -f cursor2api-go ]; then echo -e "${RED}❌ 编译失败!${NC}" exit 1 fi echo -e "${GREEN}✅ 应用编译成功!${NC}" } # 显示服务信息 show_info() { echo "" echo -e "${GREEN}✅ 准备就绪,正在启动服务...${NC}" echo "" } # 启动服务器 start_server() { # 捕获中断信号 trap 'echo -e "\n${YELLOW}⏹️ 正在停止服务器...${NC}"; exit 0' INT ./cursor2api-go } # 主函数 main() { print_header check_go check_nodejs setup_env build_app show_info start_server } # 运行主函数 main