execute method
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",
);
}
}