toArgParser method
ArgParser
toArgParser()
Builds the ArgParser Metro uses to validate terminal arguments.
Abbreviations that are invalid or already taken are dropped rather than failing the whole command.
Implementation
ArgParser toArgParser() {
final ArgParser parser = ArgParser();
final Set<String> abbreviations = {};
for (final LiveCommandOption option in options) {
if (parser.options.containsKey(option.name)) continue;
final String? abbr =
option.abbr != null && abbreviations.add(option.abbr!)
? option.abbr
: null;
if (option.isFlag) {
parser.addFlag(
option.name,
abbr: abbr,
help: option.help,
defaultsTo: option.defaultValue == true,
);
} else {
final Object? defaultValue = option.defaultValue;
parser.addOption(
option.name,
abbr: abbr,
help: option.help,
allowed: option.allowed,
defaultsTo: defaultValue?.toString(),
);
}
}
return parser;
}