模块 ringo / args
命令行选项的解析器。该解析器支持各种选项格式:
-a -b -c
(多个短期选项)-abc
(将多个空头期权合并为一个)-a value
(带有值的简短选项)-avalue
(具有值的备选短期选项)--option value
(带有值的长选项)--option=value
(替代长选项与值)
Example
// ringo parserExample.js -v --size 123 -p 45678
include('ringo/term');
var system = require('system');
var {Parser} = require('ringo/args');
var parser = new Parser();
parser.addOption('s', 'size', 'SIZE', 'Sets the size to SIZE');
parser.addOption('p', 'pid', 'PID', 'Kill the process with the PID');
parser.addOption('v', 'verbose', null, 'Verbosely do something');
parser.addOption('h', 'help', null, 'Show help');
var options = parser.parse(system.args.slice(1));
if (options.help) {
writeln(parser.help());
} else {
if (options.size) {
writeln('Set size to ' + parseInt(options.size));
}
if (options.pid) {
writeln('Kill process ' + options.pid);
}
if (options.verbose) {
writeln('Verbose!');
}
}
if (!Object.keys(options).length) {
writeln("Run with -h/--help to see available options");
}
Parser ()
创建一个新的命令行选项解析器。
Parser.prototype. addOption (shortName, longName, argument, helpText)
给解析器添加一个选项。
Parameters
String | shortName | the short option name (without leading hyphen) |
String | longName | the long option name (without leading hyphens) |
String | argument | display name of the option's value, or null if the argument is a singular switch |
String | helpText | the help text to display for the option |
Returns
Object | this parser for chained invocation |
Parser.prototype. help ()
获取适用于在命令行脚本中显示的解析器选项的帮助文本。
Returns
String | a string explaining the parser's options |
Parser.prototype. parse (args, result)
将参数数组解析为选项对象。如果定义了长选项名称,则将其转换为骆驼大小写形式并用作属性名称。否则,简短选项名称将用作属性名称。
将结果对象作为第二个参数传递是定义默认选项的一种便捷方式:
Example
parser.parse(system.args.slice(1), {myOption: "defaultValue"});
Parameters
Array | args | the argument array. Matching options are removed. |
Object | result | optional result object. If undefined, a new Object is created. |
Returns
Object | the result object |