runCommand method
Implementation
@override
Future<int> runCommand() async {
final root = p.normalize(p.absolute(argResults!['path'] as String));
final top = int.tryParse(argResults!['top'] as String) ?? 10;
final scanner = ScannerService(
fileSystem: context.fileSystem,
platform: context.platform,
);
final scan = await context.terminal.withSpinner(
'Analyzing project footprint',
() => scanner.scan(roots: [root]),
);
final caches = await scanner.cacheEntries();
logger.info('Largest entries:');
for (final entry in scan.entries.take(top)) {
logger.info(
'${formatBytes(entry.bytes).padLeft(10)} ${entry.kind.name.padRight(14)} ${entry.path}',
);
}
logger.info('');
logger.info('Cache report:');
for (final entry in caches) {
logger.info('${formatBytes(entry.bytes).padLeft(10)} ${entry.path}');
}
logger.success('Total project candidates: ${formatBytes(scan.totalBytes)}');
return CleanerExitCode.success.code;
}