execute method

  1. @override
Future<void> execute()
override

execute command

Implementation

@override
Future<void> execute() async {
  final pluginsDir =
      flags.contains('plugins-dir')
          ? _getArgValue('plugins-dir')
          : 'lib/plugins';
  final verbose =
      flags.contains('verbose') || flags.contains('-v') ? true : false;

  LogService.info("Running Vortex plugin scanner...");
  final projectDir = Directory.current.path;
  LogService.info("Project directory: $projectDir");
  final fullPluginsDir = path.join(projectDir, pluginsDir);
  LogService.info("Plugins directory: $fullPluginsDir");

  // Check if the plugins directory exists
  if (!Directory(fullPluginsDir).existsSync()) {
    LogService.error("Plugins directory not found: $fullPluginsDir");
    return;
  }

  try {
    // Scan for plugin files
    final pluginFiles = _findPluginFiles(fullPluginsDir);
    LogService.info("Found ${pluginFiles.length} plugin files");

    if (verbose) {
      for (final file in pluginFiles) {
        LogService.info(
          "Plugin file: ${path.relative(file.path, from: projectDir)}",
        );
      }
    }

    // Generate the plugin registration code
    _generatePluginRegistration(projectDir, pluginFiles);

    LogService.info("Vortex plugin scanner completed successfully");
  } catch (e, stackTrace) {
    LogService.error(
      "Error running plugin scanner, error: $e, stackTrace: $stackTrace",
    );
  }
}