run method

Future<void> run(
  1. List<String> arguments
)

Implementation

Future<void> run(List<String> arguments) async {
  final parser = _buildParser();

  try {
    final results = parser.parse(arguments);

    if (results['help'] as bool || arguments.isEmpty) {
      _printHelp(parser);
      return;
    }

    final command = results.command;
    if (command?.name != 'create') {
      _printHelp(parser);
      return;
    }

    if (command!['help'] as bool) {
      _printCreateHelp();
      return;
    }

    final subCommand = command.command;
    switch (subCommand?.name) {
      case 'project':
        if (subCommand!['help'] as bool) {
          _printProjectHelp();
          return;
        }
        await _createProject(subCommand);
      case 'module':
        if (subCommand!['help'] as bool) {
          _printModuleHelp();
          return;
        }
        await _createModule(subCommand);
      case 'page':
        if (subCommand!['help'] as bool) {
          _printPageHelp();
          return;
        }
        await _createPage(subCommand);
      default:
        _printCreateHelp();
    }
  } on ArgParserException catch (error) {
    _logger.err(error.message);
    _printHelp(parser);
  } on FormatException catch (error) {
    _logger.err(error.message);
  } on CliCancelledException catch (error) {
    _logger.warn(error.message);
  } on CliException catch (error) {
    _logger.err(error.message);
  }
}