File size: 3,348 Bytes
1766992
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#!/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