#!/usr/bin/env node
/**
* fmode-code-lit CLI
* 用法:
* npx @fmode/skill-code-lit install # 装技能到 ~/.claude/skills/(默认)
* npx @fmode/skill-code-lit workspace # 装技能到 ./.claude/skills/
* npx @fmode/skill-code-lit check # 校验安装
* npx @fmode/skill-code-lit scaffold
--project # 生成无构建 Lit 项目骨架
* npx @fmode/skill-code-lit new
* npx @fmode/skill-code-lit rules [dir] # 把前端规则装入目标项目 ./.claude/rules/
*/
const { spawnSync } = require('node:child_process');
const path = require('node:path');
const SCRIPTS = path.join(__dirname, '..', 'scripts');
const [cmd = 'install', ...rest] = process.argv.slice(2);
const MAP = {
install: 'install.mjs',
workspace: 'install.mjs',
check: 'install.mjs',
scaffold: 'scaffold.mjs',
new: 'new.mjs',
rules: 'install-rules.mjs',
};
const script = MAP[cmd];
if (!script) {
console.error(`未知命令:${cmd}\n可用:${Object.keys(MAP).join(', ')}`);
process.exit(2);
}
// workspace 需作为首参透传给 install.mjs(install.mjs 默认 install)
const argv = (cmd === 'workspace' || cmd === 'install' || cmd === 'check')
? [path.join(SCRIPTS, script), cmd, ...rest]
: [path.join(SCRIPTS, script), ...rest];
const r = spawnSync(process.execPath, argv, { stdio: 'inherit' });
process.exit(r.status ?? 1);