runCommand static method

void runCommand()

Reads the current arguments and dispatches to the matching create command (page, bs, or event).

Implementation

static void runCommand() {
  bool isCreatePageCommand = arguments.length == 5 && arguments[3] == 'in' && arguments[0] == 'create' && arguments[1] == 'page';
  bool isCreateBottomSheetCommand = arguments.length == 3 && arguments[0] == 'create' && arguments[1] == 'bs';
  bool isCreateEventCommand = arguments.length == 5 && arguments[0] == 'create' && arguments[1] == 'event' && arguments[3] == 'in';

  if (arguments.isEmpty) {
    ConsoleLogger.error('No command provided.');
    return;
  }

  if (arguments.any((element) => isInValidArgument(element))) {
    ConsoleLogger.error('Invalid command format\n  • Should be in lowercase only\n  • Start with alphabet\n  • No special characters allowed other then underscore (_)');
    return;
  }

  if (isCreatePageCommand) {
    // Check if page is available in these paths and then Create Page
    String basePage = arguments[4];
    if (basePage == 'customer') {
      _role = 'customer';
    } else if (basePage == 'pub') {
      _role = 'pub';
    } else if (basePage == 'common') {
      _role = 'common';
    } else {
      ConsoleLogger.error('Invalid page category: $basePage');
      return;
    }
    _pageName = arguments[2];
    _createPageStructure();
  } else if (isCreateBottomSheetCommand) {
    // Create Bottom Sheet
    _pageName = arguments[2];
    _createBottomSheetStructure();
  } else if (isCreateEventCommand) {
    // Create Event
    final String eventName = arguments[2];
    final String pageName = arguments[4];
    _createEvent(eventName, pageName);
  } else {
    ConsoleLogger.error('Unknown command.');
  }
}