run method

Future<int> run()

Runs the scan command.

Implementation

Future<int> run() async {
  if (priorityRoots.isEmpty && !includeDefaults) {
    printError('Error: No scan roots specified. Use --root or --include-defaults');
    return 1;
  }

  printVerbose('Scanning for Flutter projects...');
  printVerbose('Priority roots: $priorityRoots');
  printVerbose('Include defaults: $includeDefaults');
  printVerbose('Include optional: $includeOptional');
  printVerbose('Include global: $includeGlobal');
  printVerbose('Max depth: ${maxDepth == 0 ? "unlimited" : maxDepth}');

  try {
    final result = await CacheScanner.scan(
      priorityRoots: priorityRoots,
      includeDefaults: includeDefaults,
      includeOptional: includeOptional,
      includeGlobal: includeGlobal,
      maxDepth: maxDepth,
    );

    if (jsonOutput) {
      _printJson(result);
    } else {
      _printHumanReadable(result);
    }

    return 0;
  } catch (e) {
    printError('Error during scan: $e');
    return 1;
  }
}