zy-gbs-cmd/bin/command.js

57 lines
1.6 KiB
JavaScript
Raw Normal View History

2026-08-25 17:17:36 +08:00
#!/usr/bin/env node
const { version } = require('../package.json');
/*
* 命令启动入口
* 1. package.json bin 配置把全局命令 zy-gbs-cmd 指向本文件
* 2. 本文件解析 createpushhelpv 等用户参数
* 3. 根据命令调用对应模块执行项目创建或构建推送
*/
2026-08-25 17:17:36 +08:00
function printHelp() {
console.log(`zy-gbs-cmd <command>
使用
zy-gbs-cmd help 查看帮助
zy-gbs-cmd v 查看版本
zy-gbs-cmd create 从空白模板创建项目
2026-08-25 17:17:36 +08:00
zy-gbs-cmd push java [environment] 构建并推送到 Java Git 仓库
`);
}
async function main() {
// 第 1 步解析命令。process.argv 前两项是 Node.js 路径和本文件路径,从第三项开始才是用户参数。
2026-08-25 17:17:36 +08:00
const [, , command, argument, environment] = process.argv;
if (!command || command === 'help') {
printHelp();
return;
}
if (command === 'v') {
console.log(`当前版本: v${version}`);
return;
}
if (command === 'create' && !argument) {
await require('../src/create')();
return;
}
2026-08-25 17:17:36 +08:00
if (command === 'push' && argument === 'java') {
// 第 2 步进入推送主流程。production 会作为 environment 传给 pushJava。
2026-08-25 17:17:36 +08:00
await require('../src/push')({ environment });
return;
}
console.error('无效命令,请执行 zy-gbs-cmd help 查看用法。');
process.exitCode = 1;
}
main().catch(error => {
// 统一设置非零退出码,便于终端和 CI 判断命令执行失败。
console.error(`执行失败: ${error.message}`);
2026-08-25 17:17:36 +08:00
process.exitCode = 1;
});