createIconsFromArguments function
Creates icons from the arguments passed to the program.
Implementation
Future<void> createIconsFromArguments(List<String> arguments) async {
print(introMessage());
final ArgParser parser = ArgParser(allowTrailingOptions: true);
parser.addFlag(helpFlag, abbr: 'h', help: 'Usage help', negatable: false);
// Make default null to differentiate when it is explicitly set
parser.addOption(fileOption,
abbr: 'f', help: 'Config file (default: $defaultConfigFile)');
final ArgResults argResults = parser.parse(arguments);
if (argResults[helpFlag]) {
stdout.writeln('Generates icons for iOS and Android');
stdout.writeln(parser.usage);
exit(0);
}
// Flavors management
final flavors = getFlavors();
final hasFlavors = flavors.isNotEmpty;
// Load the config file
final Map<String, dynamic>? yamlConfig =
loadConfigFileFromArgResults(argResults, verbose: true);
if (yamlConfig == null) {
throw const NoConfigFoundException();
}
// Create icons
if (!hasFlavors) {
try {
await createIconsFromConfig(yamlConfig);
print('\n✓ Successfully generated launcher icons');
} catch (e) {
stderr.writeln('\n✕ Could not generate launcher icons');
stderr.writeln(e);
exit(2);
}
} else {
try {
for (String flavor in flavors) {
print('\nFlavor: $flavor');
final Map<String, dynamic> yamlConfig =
loadConfigFile(flavorConfigFile(flavor), flavorConfigFile(flavor));
await createIconsFromConfig(yamlConfig, flavor);
}
print('\n✓ Successfully generated launcher icons for flavors');
} catch (e) {
stderr.writeln('\n✕ Could not generate launcher icons for flavors');
stderr.writeln(e);
exit(2);
}
}
}