handle method

void handle()

Implementation

void handle() {
  try {
    final results = _parser.parse(arguments);

    if (results['help'] || (results.command?.name == 'help')) {
      _printHelp();
      return;
    }

    if (results['version']) {
      _printVersion();
      return;
    }

    final command = results.command?.name;
    final config = ConfigLoader.load();
    final cli = InteractiveCLI(config);

    switch (command) {
      case 'generate':
      case 'g':
        cli.startGenerate();
        break;
      case 'sync':
      case 's':
        cli.startSync();
        break;
      case 'interactive':
      case 'i':
        cli.startInteractive();
        break;
      case 'api':
      case 'a':
        cli.startApiGenerate();
        break;
      case 'batch':
      case 'b':
        final rest = results.command!.rest;
        if (rest.isEmpty) {
          print('Error: Please provide a folder path for batch generation.');
          print('Usage: amg batch <folder_path>');
          return;
        }
        cli.startBatch(rest.first);
        break;
      case 'init':
        _handleInit();
        break;
      case 'version':
        _printVersion();
        break;
      default:
        // Default to interactive if no command or empty arguments
        cli.startInteractive();
        break;
    }
  } catch (e) {
    print('Error parsing arguments: $e');
    _printHelp();
  }
}