execute method

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

execute command

Implementation

@override
Future<void> execute() async {
  var componentName = this.name;
  final componentsDir =
      flags.contains('dir')
          ? _getArgValue('dir')
          : 'lib/components';
  final verbose = flags.contains('verbose') ? true : false;

  if (verbose) {
    LogService.info("Running Vortex component scanner...");
    LogService.info('Creating component $componentName in $componentsDir');
  }

  final projectDir = Directory.current.path;
  final fullComponentsDir = path.join(projectDir, componentsDir);

  try {
    final componentFiles = _findComponentFiles(fullComponentsDir);
    LogService.info("Found ${componentFiles.length} component files");

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

    // Generate the component registration code
    _generateComponentRegistration(projectDir, componentFiles);
  } catch (e, stackTrace) {
    LogService.error(
      "Error running component scanner",
      error: e,
      stackTrace: stackTrace,
    );
  }
}