| #!/bin/bash |
|
|
| |
|
|
| 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' |
|
|
| |
| print_header() { |
| echo "" |
| echo -e "${CYAN}=========================================${NC}" |
| echo -e "${WHITE} 🚀 Cursor2API启动器${NC}" |
| echo -e "${CYAN}=========================================${NC}" |
| } |
|
|
| |
| 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}" |
| } |
|
|
| |
| 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 |