#!/usr/bin/env node const inquirer = require('inquirer'); const program = require('commander'); const util = require('../util') const git_util = require('../git_util.js'); const prompt = require('../prompt.js'); program .version(require('../package.json').version, '-v, --version') // 定义版本信息 .usage(' [options]'); // 定义命令用法 program .command('check [options]', { noHelp: false, isDefault: true }) .description('检查状态') // 给rm命令添加描述信息,获取命令帮助信息的时候会显示 .option('--rb', '查看远程分支') .action(async (options, cmd) => { // 对应命令的处理函数 let currentPath = process.cwd(); let isClean = await util._isClean(); console.log('当前节点是否干净?', isClean); let branch = await util._getBranch(); console.log('当前所在分支:', branch); let remote = await util._getAllRemote(); console.log('所有远程源:', remote); if (cmd.rb) { console.log('所有分支'); let info = await util.exec('git branch -a'); console.log(info); } // let info = await util.exec('git status'); }); program .command('sync') .description('提交所有源') .action(async (options, cmd) => { // 对应命令的处理函数 // let currentPath = process.cwd(); let remote = await util._getAllRemote(); let branch = await util._getBranch();; //当前分支 if (remote.length > 0) { let isPushAll = await prompt.isPushAll(); if (isPushAll) { let pushMsg = await prompt.pushMsg(); for (let i = 0; i < remote.length; i++) { const o = remote[i]; let isclean = await util._isClean(); if (!isclean) { await git_util.all(pushMsg, o, branch); } else { await git_util.push(o, branch); } } } else { let list = await prompt.listPush(remote); if (list.length) { let pushMsg = await prompt.pushMsg(); for (let i = 0; i < list.length; i++) { const o = list[i]; let isclean = await util._isClean(); if (!isclean) { await git_util.all(pushMsg, o, branch); } else { await git_util.push(o, branch); } } } else { console.log('您未选择源进行提交'); } } } else { console.log('请添加源'); // let { // name, // url // } = await prompt.addRemote(); // await util.exec('git remote add ' + name + ' ' + url); // console.log('添加成功'); } // let info = await util.exec('git status'); }); program.parse(process.argv); // commander的入口欧,传入命令行参数执行解析