lhlltsn
Version:
CommanLine Tool for Node LTS
86 lines (71 loc) • 1.53 kB
JavaScript
const pkg = require('../package')
const query = require('..').query
const update = require('..').update
function printResult(v) {
update(v).then(dists => {
const results = query(dists, v)
console.log(results)
process.exit()
})
}
function printVersion() {
console.log('ltsn ' + pkg.version)
process.exit()
}
function printHelp(code) {
const lines = [
'',
' Usage:',
' ltsn [8]',
'',
' Options:',
' -v, --version print the version of vc',
' -h, --help display this message',
'',
' Examples:',
' $ ltsn 8',
''
]
console.log(lines.join('\n'))
process.exit(code || 0)
}
// 包的入口函数,里面对参数做剪裁处理,拿到入参并给予
// 不同入参的处理逻辑
function main(argv) {
// 命令行的入参
if (!argv) {
printHelp(1)
}
// 兼容 ltsn --lts=10
const getArg = function() {
let args = argv.shift()
args = args.split('=')
if (args.length > 1) {
argv.unshift(args.slice(1).join('='))
}
return args[0]
}
let arg
while (argv.length) {
arg = getArg()
switch(arg) {
case '-v':
case '-V':
case '--version':
printVersion()
break
case '-h':
case '-H':
case '--help':
printHelp()
break
default:
printResult(arg)
break
}
}
}
// 启动程序就开始执行主函数
main(process.argv.slice(2))
module.exports = main