如何在CliBuilder中支持带有必需参数的帮助命令行参数

Laf*_*ica 4 groovy command-line-parsing

我正在使用CliBuilder解析Groovy脚本的命令行参数.在我定义的论点中,我有一个是强制性的.有没有办法支持一个-h,--help参数,打印命令用法没有关于缺少参数的恼人的错误消息?

例如,仅使用-h参数运行以下Groovy脚本:

def cli = new CliBuilder (usage:'test', stopAtNonOption:false)
cli.r (longOpt:'required', required:true, 'Required argument.')
cli.h (longOpt:'help', 'Prints this message')
def options = cli.parse (args)
Run Code Online (Sandbox Code Playgroud)

当它到达该def options = cli.parse (args)行时将生成下面的输出,并将自动停止脚本执行:

error: Missing required option: r
usage: test
 -h,--help       Prints this message
 -r,--required   Required argument.

我想只显示指定-hor --help参数时的用法,而不必删除required:true我所需参数的选项.这可能吗?

dma*_*tro 5

我可能没有正确理解这个问题,但是

cli.usage()
Run Code Online (Sandbox Code Playgroud)

你在找什么?

您可以执行以下操作以避免它:

def options

//or ['-h', '--help'].intersect(args?.toList())
if('-h' in args || '--help' in args) {
    cli.usage() 
} else {
    options = cli.parse (args)
}
Run Code Online (Sandbox Code Playgroud)