boolOption function
Tests whether the argument
has the longName
or the shortName
and an boolean.
Returns the value of the boolean argument.
Throws OptionException on error.
longName
: the long name to inspect, e.g. 'max-length'
shortName
: the short name to inspect, e.g. 'm'
argument
: argument to inspect, e.g. '--max-length=3'
Implementation
Bool boolOption(String longName, String shortName, String argument) {
var rc = Bool.UNDEF;
if (argument == '--$longName') {
rc = Bool.TRUE;
} else if (argument.startsWith('--$longName=')) {
var matcher = RegExp('.*=(t(rue)?|f(alse)?)\$').firstMatch(argument);
if (matcher == null) {
throw OptionException(
'missing <bool> in $argument: e.g. "true" or "false"');
}
rc = matcher.group(1)?.startsWith('t') ?? false ? Bool.TRUE : Bool.FALSE;
} else if (argument == '-$shortName') {
rc = Bool.TRUE;
}
return rc;
}