handleCommands static method

dynamic handleCommands({
  1. required ArgParser parser,
  2. required ArgParser createParser,
  3. required ArgParser configParser,
  4. required List<String> arguments,
})

Implementation

static handleCommands({
  required ArgParser parser,
  required ArgParser createParser,
  required ArgParser configParser,
  required List<String> arguments,
}) async {
  final argResult = parser.parse(arguments);
  final bool isOpenCommand = argResult.command?.name == 'open';
  final bool isResetCommand = argResult.command?.name == 'reset';
  final bool isVersionCheck = argResult['version'];
  final bool isHelpFlag = argResult['help'];
  final bool isCreateCommand = argResult.command?.name == 'create';
  final bool isConfigCommand = argResult.command?.name == 'config';

  if (isVersionCheck) {
    await showVersion();
  } else if (isOpenCommand) {
    final path = await getTemplateDirectoryPath();
    await openDirectory(path);
  } else if (isResetCommand) {
    await Config.reset();
  } else if (isCreateCommand) {
    await createCommandHandler(createParser.parse(arguments));
  } else if (isConfigCommand) {
    await configCommandHandler(configParser.parse(arguments));
  } else if (isHelpFlag) {
    help(
      parser: parser,
      createParser: createParser,
      configParser: configParser,
    );
  } else {
    throw 'Invalid command';
  }
}