Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.2.1
Description
When retrieving an argument from the OptionAccessor, it would be nice to be able to give a default value that is returned if hasValue() in OptionAccessor.getProperty() returned false
Currently to you have to do something like
def cliBuilder = new CliBuilder() cliBuilder.d longOpt: 'directory', args: 1, 'd option' def arguments = cliBuilder.parse args if (!arguments) { System.exit 1 } def directory if (arguments.directory) { directory = arguments.directory } else { directory = System.properties.'user.dir' }
if would be nicer to instead just do
def cliBuilder = new CliBuilder() cliBuilder.d longOpt: 'directory', args: 1, 'd option' def arguments = cliBuilder.parse args if (!arguments) { System.exit 1 } def directory = arguments.directory System.properties.'user.dir'
I think something along the lines of changing
if (null == result) result = inner.hasOption(name) if (result instanceof String[]) result = result.toList() return result
to
if (null == result) result = inner.hasOption(name) if (!result) result = defaultValue if (result instanceof String[]) result = result.toList() return result
should do what I mean.