#!/bin/bash

# 设置颜色
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[0;33m'
RED='\033[0;31m'
NC='\033[0m' # 重置颜色

echo -e "${BLUE}开始安装 cursor-cli...${NC}"

# 创建临时目录
TMP_DIR=$(mktemp -d)
echo -e "${YELLOW}创建临时目录: ${TMP_DIR}${NC}"

# 清理函数
cleanup() {
  echo -e "${YELLOW}清理临时文件...${NC}"
  rm -rf "$TMP_DIR"
}

# 设置错误退出清理
trap cleanup EXIT

# 检查curl是否可用
if ! command -v curl &> /dev/null; then
  echo -e "${RED}错误: 需要curl但未安装。请安装curl后重试。${NC}"
  exit 1
fi

# 检查Node.js/npm是否可用
if ! command -v npm &> /dev/null; then
  echo -e "${RED}错误: 需要Node.js和npm但未安装。请安装Node.js后重试。${NC}"
  exit 1
fi

# 设置最新版本 - 实际部署时修改为对应版本
VERSION="latest"
REPO_URL="https://github.com/your-username/cursor-cli"

echo -e "${YELLOW}下载最新版本的cursor-cli...${NC}"

# 下载代码 - 实际部署时替换为真实URL
if [ "$VERSION" == "latest" ]; then
  # 使用最新版本
  curl -L "$REPO_URL/archive/refs/heads/main.tar.gz" -o "$TMP_DIR/cursor-cli.tar.gz"
else
  # 使用特定版本
  curl -L "$REPO_URL/archive/refs/tags/v$VERSION.tar.gz" -o "$TMP_DIR/cursor-cli.tar.gz"
fi

# 检查下载是否成功
if [ $? -ne 0 ]; then
  echo -e "${RED}错误: 下载失败，请检查网络连接或URL${NC}"
  exit 1
fi

# 解压文件
echo -e "${YELLOW}解压文件...${NC}"
tar -xzf "$TMP_DIR/cursor-cli.tar.gz" -C "$TMP_DIR"

# 进入解压后的目录
cd "$TMP_DIR"/cursor-cli* || {
  echo -e "${RED}错误: 无法进入解压后的目录${NC}"
  exit 1
}

# 全局安装
echo -e "${YELLOW}全局安装cursor-cli...${NC}"
npm install -g .

# 检查安装是否成功
if [ $? -ne 0 ]; then
  echo -e "${RED}错误: 安装失败${NC}"
  exit 1
fi

# 测试命令是否可用
if command -v cursor-cli &> /dev/null; then
  echo -e "${GREEN}cursor-cli 已成功安装!${NC}"
  echo -e "${BLUE}使用方法: cursor-cli --help${NC}"
else
  echo -e "${RED}安装似乎成功，但命令无法运行。请检查PATH环境变量。${NC}"
  echo -e "${YELLOW}您可能需要重启终端或手动添加npm全局bin目录到PATH${NC}"
fi

# 清理
cleanup

echo -e "${GREEN}安装完成!${NC}" 