[英]Groovy clibuilder only show first invalid option
当'stopAtNonOption'为false时,groovy会告诉您第一个未知的选项。 无论如何,有没有列出所有未知选项而不是第一个?
$ ./some_cli_program --knownOption someValue --unknown1 --unknown2 someOtherValue
实际
error: unrecoqnized option: --unknown1
预期
error: unrecoqnized options: --unknown1 --unknown2
拥有一个体面的“使用”信息通常就足够了。 默认行为是在第一个无法识别的令牌上引发异常。
您可以自定义解析器。 下面的样本
import org.apache.commons.cli.ParseException
import org.apache.commons.cli.UnrecognizedOptionException
import org.codehaus.groovy.cli.GroovyPosixParser
def cli = new CliBuilder(usage: 'myprog', stopAtNonOption: false)
cli.a("option1")
def unknowns = [];
cli.parser = new GroovyPosixParser() {
@Override
protected void processOption(String arg, ListIterator iter) throws ParseException {
try {
super.processOption(arg, iter)
}
catch (UnrecognizedOptionException specialE) {
unknowns.push(arg);
}
}
}
def options = cli.parse(args)
//on error cli.usage()
if (!unknowns.isEmpty()) {
println("had unknown options")
unknowns.each {println it}
cli.usage()
}
//cli.usage() is probably better and enough
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.