This commit is contained in:
+11
-3
@@ -85,12 +85,21 @@ module.exports = class CliCmdParser {
|
||||
// 位置参数:值
|
||||
const position = []
|
||||
|
||||
let line = this.cmdLines[ argv[0] ];
|
||||
|
||||
for (let i = 1; i < argv.length; i++ ) {
|
||||
if ( argv[i].startsWith("--") ) {
|
||||
const name = argv[i].substring(2);
|
||||
if ( i + 1 == argv.length || argv[ i + 1 ].startsWith("-") ) {
|
||||
throw "flag 格式错误" + argv[i];
|
||||
const param = line.params[name];
|
||||
if ( ! param || ! param.isOptional ) {
|
||||
throw "flag 格式错误" + argv[i];
|
||||
}
|
||||
// 可选命名参数允许不带值,值为空串,由命令自行做默认值
|
||||
params[ name ] = "";
|
||||
} else {
|
||||
params[ name ] = argv[++i];
|
||||
}
|
||||
params[ argv[i].substring(2) ] = argv[++i];
|
||||
|
||||
} else if ( argv[i].startsWith("-") ) {
|
||||
flags.add( argv[i].substring(1) );
|
||||
@@ -99,7 +108,6 @@ module.exports = class CliCmdParser {
|
||||
}
|
||||
}
|
||||
|
||||
let line = this.cmdLines[ argv[0] ];
|
||||
// 整理
|
||||
// line 是藐视
|
||||
// flags, params, position 是值
|
||||
|
||||
Reference in New Issue
Block a user