AssetConfig.fromArgs constructor
Implementation
factory AssetConfig.fromArgs(List<String> args) {
bool allInOne = false; // default
List<String> includePaths = [];
String outputPath = "lib/generated/assets";
String preClass = "App";
String postClass = "";
for (var i = 0; i < args.length; i++) {
final arg = args[i];
switch (arg) {
case '--all-in-one':
allInOne = true;
break;
case '--separate':
allInOne = false;
break;
case '--include':
if (i + 1 < args.length) {
final paths = <String>[];
for (var j = i + 1; j < args.length; j++) {
if (args[j].startsWith('--')) break;
paths.add(args[j]);
i = j;
}
includePaths.addAll(paths);
}
break;
case '--output':
if (i + 1 < args.length) {
outputPath = args[i + 1];
i++;
}
break;
case '--pre-class':
if (i + 1 < args.length) {
preClass = args[i + 1];
i++;
}
break;
case '--post-class':
if (i + 1 < args.length) {
postClass = args[i + 1];
i++;
}
break;
case '--help':
case '-h':
printHelp();
exit(0);
}
}
final outputDir = Directory(outputPath);
if (!outputDir.existsSync()) {
outputDir.createSync(recursive: true);
}
return AssetConfig(
allInOne: allInOne,
includePaths: includePaths,
outputDirectory: outputDir,
preClass: preClass,
postClass: postClass,
);
}