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

时间:2014-02-11 22:12:19

标签: 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)

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

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

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

1 个答案:

答案 0 :(得分:5)

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

cli.usage()

你在找什么?

你可以做以下的事情来避免它:

def options

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