execute method

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

execute command

Implementation

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

  LogService.info("Running Vortex router scanner...");
  final projectDir = Directory.current.path;
  LogService.info("Project directory: $projectDir");
  final fullPagesDir = path.join(projectDir, pagesDir);
  LogService.info("Pages directory: $fullPagesDir");
  // Check if the pages directory exists
  if (!Directory(fullPagesDir).existsSync()) {
    LogService.error("Pages directory not found: $fullPagesDir");
    return;
  }

  try {
    // Scan for page files
    final pageFiles = _findPageFiles(fullPagesDir);
    LogService.info("Found ${pageFiles.length} page files");

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

    // Generate the route registration code
    _generateRouteRegistration(projectDir, pageFiles);

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