#!/usr/bin/env node
/**
 * 将 MVFrame 自带的 Cursor Skill 拷贝到目标工程的 `.cursor/skills/mvframe-app-init`，
 * 便于消费方项目在 Cursor 中自动匹配「初始化 / 接入 mvframe」等场景。
 *
 * 用法：
 *   # 在项目根（要装 .cursor 的目录）执行
 *   node path/to/mvframe/scripts/install-cursor-skill.js
 *   node path/to/mvframe/scripts/install-cursor-skill.js /abs/path/to/your-project
 *
 *   # 安装本包后（需 package 含 .cursor/skills 与本脚本）
 *   yarn exec mvframe-install-cursor-skill
 *   npx --no-install mvframe-install-cursor-skill
 *
 * 环境变量（可选）：
 *   MVFRAME_CURSOR_SKILL_OUT=/path/to/project  等价于第一个参数
 */

const fs = require("fs");
const path = require("path");

const pkgRoot = path.resolve(__dirname, "..");
const src = path.join(pkgRoot, ".cursor", "skills", "mvframe-app-init");

const projectRoot = path.resolve(
  process.env.MVFRAME_CURSOR_SKILL_OUT ||
    process.argv[2] ||
    process.cwd(),
);
const dest = path.join(projectRoot, ".cursor", "skills", "mvframe-app-init");

if (!fs.existsSync(path.join(src, "SKILL.md"))) {
  console.error(
    "[mvframe] 未找到 skill 源码目录：\n  ",
    src,
    "\n请使用完整 mvframe 仓库或已包含 .cursor/skills 的安装包。",
  );
  process.exit(1);
}

fs.mkdirSync(path.dirname(dest), { recursive: true });

if (fs.existsSync(dest)) {
  fs.rmSync(dest, { recursive: true });
}

fs.cpSync(src, dest, { recursive: true });

console.log("[mvframe] 已安装 Cursor Skill：");
console.log("  ", dest);
console.log("[mvframe] 在 Cursor 中打开该项目后即可使用 mvframe-app-init 技能说明。");
