getOpiton function
get option input, order: define -> env -> yaml -> globalResults -> argResults
Implementation
String getOpiton(
String name,
Config config, {
bool isNotEmpty = true,
String defaultTo = '',
List<String> datalist = const [],
ArgResults? gRes,
ArgResults? aRes,
}) {
String? value = config.optionalString(name);
if (value != null) return value;
if (name.contains(dotDelimiter)) name = name.split(dotDelimiter).last;
value ??= gRes?.option(name);
value ??= aRes?.option(name);
value ??= defaultTo;
if (isNotEmpty && value.isEmpty) {
throw UsageException('err: $name empty', '');
}
if (datalist.isNotEmpty && !datalist.contains(value)) {
throw UsageException('err: $name not in datalist', '');
}
return value;
}