run method

Future run(
  1. List<String> arguments
)

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;
  }
}