Hi Merlin,
thanks for sharing G-)
Cheers,
mg
On 16/01/2024 16:42, Merlin Beedell wrote:
I thought this might be useful… I wanted an easy way to print the
parameters passed to groovy CliBuilder.
Unlike the usage() method that prints the ‘how to use’
(header/parameter options/footer), I just wanted to print the final
parsed value set.
(Perhaps something like this could be incorporated into CliBuilder’s
OptionAccessor - a pretty print method?)
It turns out to be a one liner [for basic single args] and 1 more for
additional args. For example…
def cli = new CliBuilder(usage:'''Cryoserver Export to PST''', footer:'''
V1.0 MGB Jul 2020.''')
cli.i(longOpt:'input', args:1, required: true, argName:'filepath',
type:File, 'a directory containing Cryoserver Export zip files')
cli.o(longOpt:'output', args:1, required: true, argName:'filepath',
type:File, 'output into this directory')
cli.d(longOpt:'depth',args:1, required: false, argName:'number',
type:int, defaultValue: '1', 'levels of subdirectories to traverse.
Default 1.')
cli.m(longOpt:'max',args:1, required: false, argName:'number',
type:int, defaultValue: '50000', 'Max num mails per pst. Default 50000.')
cli.t(longOpt:'threads',args:1, required: false, argName:'number',
type:int, defaultValue: '4', 'number of threads. Default 4.')
cli.w(longOpt:'wrapped', args:0, required: false, defaultValue:false,
'Include Wrapper? Default = false (strip any wrapper)')
cli.x(longOpt:'filefilter', args:1, required: false, argName:'regex',
defaultValue: fileMatch, "a regex to select required export files.
default = $fileMatch")
cli.'?'(longOpt:'help', 'help')
def opts = cli.parse(['-i','b','-o','c', 'plus', 'more'])
if (!opts) { //if invalid opts then it prints usage by default
return
}
*cli.options.options.each {println "-$it.option(${it.longOpt}) =
${opts[(it.option)]}"}*
*if (opts.arguments()) {println opts.arguments()}*
prints (note – args are in the same order as defined):
-i(input) = b
-o(output) = c
-d(depth) = 1
-m(max) = 50000
-t(threads) = 4
-w(wrapped) = false
-x(filefilter) = .*
-?(help) = false
[Plus, more]
Merlin Beedell