InitOptions.parse constructor
Parses the args that follow the init command.
Implementation
factory InitOptions.parse(List<String> args) {
var all = false;
var minimal = false;
var yes = false;
var runPubGet = true;
var force = false;
var list = false;
var help = false;
final modules = <String>[];
final unknown = <String>[];
void addModulesFromValue(String value) {
for (final part in value.split(',')) {
final trimmed = part.trim();
if (trimmed.isNotEmpty) modules.add(trimmed);
}
}
for (var i = 0; i < args.length; i++) {
final arg = args[i];
switch (arg) {
case '--all':
case '-a':
all = true;
break;
case '--minimal':
minimal = true;
break;
case '--yes':
case '-y':
yes = true;
break;
case '--no-pub-get':
runPubGet = false;
break;
case '--force':
case '-f':
force = true;
break;
case '--list':
case '-l':
list = true;
break;
case '--help':
case '-h':
help = true;
break;
case '--modules':
case '-m':
if (i + 1 < args.length) {
addModulesFromValue(args[++i]);
}
break;
default:
if (arg.startsWith('--modules=')) {
addModulesFromValue(arg.substring('--modules='.length));
} else if (arg.startsWith('-')) {
unknown.add(arg);
}
break;
}
}
return InitOptions(
all: all,
minimal: minimal,
modules: modules,
yes: yes,
runPubGet: runPubGet,
force: force,
list: list,
help: help,
unknownFlags: unknown,
);
}