Spaces:
Running
Running
| # 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 |