run method
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);
}
}