git-tool
Version:
统计个人代码提交量的命令行工具
59 lines (49 loc) • 1.89 kB
JavaScript
const program = require('commander')
const didYouMean = require('didyoumean')
const chalk = require('chalk')
const util = require('../lib/util')
const requiredVersion = require('../../package.json').engines.node
didYouMean.threshold = 0.5
util.checkNodeVersion(requiredVersion, `${require('../../package').name}`)
program
.version(`${require('../../package').version}`)
.usage('<command> [options]')
program
.command('codeLineNum')
.description('统计git提交代码量')
.option('-a, --author [author]', '统计指定贡献者在项目中的git提交代码量')
.action(function (options) {
if (options.author && options.author === true) {
console.log(chalk.yellow('请输入贡献者的名字'))
process.exit(1)
}
require('../lib/codeLineNum')(options.author)
}).on('--help', function () {
console.log('')
console.log('Examples:')
console.log(' git-tool codeLineNum', '统计所有贡献者的代码量')
console.log(' git-tool codeLineNum -a adai', '统计指定贡献者的代码量')
console.log(' git-tool codeLineNum --author adai', '统计指定贡献者的代码量')
console.log('')
})
program
.arguments('<command>')
.action((cmd) => {
program.outputHelp()
console.log()
console.log(' ' + chalk.red(`Unknown command ${chalk.yellow(cmd)}`))
console.log()
suggestCommands(cmd)
})
program.parse(process.argv)
if (!process.argv.slice(2).length) {
program.outputHelp()
}
function suggestCommands (unknownCommand) {
const availableCommands = program.commands.map(cmd => cmd._name)
const suggestion = didYouMean(unknownCommand, availableCommands)
if (suggestion) {
console.log(' ' + chalk.red(`Did you mean ${chalk.yellow(suggestion)} ?`))
}
}