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 |