run method
Implementation
Future run(List<String> arguments) async {
argParser = getRootArgParser();
availableCommands.allSubtypes.forEach((key, info) {
var command = allCommands[key]!;
argParser!.addCommand(classCodeToCommand(key), getCommandArgParser(command));
});
ArgResults args;
String? error;
try {
args = argParser!.parse(arguments);
} on FormatException catch (e) {
error = e.message;
args = argParser!.parse([]);
}
if (args.command == null) {
printUsage(error ?? 'Unknown command');
return 1;
} else {
await config.load(args['config'] ?? '${path.dirname(Platform.script.toFilePath())}/config.yaml');
String classCode = commandToClassCode(args.command!.name!);
var command = allCommands[classCode]!;
command.setCliArgs(args.command!);
await command.run();
await db.disconnect();
await redisCache.disconnect();
return 0;
}
}