getOption function
Implementation
String getOption(
ArgResults results,
bool isInteractive,
String name,
String message,
Map<String, String> options, {
String? desc,
String? defaultsTo,
}) {
var value = results[name] as String?;
if (!isInteractive) {
if (value == null) {
if (defaultsTo != null) {
return defaultsTo;
} else {
print('Missing parameter $name is required.');
exit(1);
}
}
}
if (value != null && !options.values.contains(value)) {
print('Invalid value $value provided. Must be in: ${options.values}');
value = null;
}
while (value == null) {
if (desc != null) {
stdout.write(ansi.darkGray.wrap('\n$desc\u{1B}[1A\r'));
}
value = options[prompts.choose(message, options.keys)];
if (desc != null) {
stdout.write('\r\u{1B}[K');
}
}
return value;
}