runCommand method

  1. @override
Future<int> runCommand()
override

Implementation

@override
Future<int> runCommand() async {
  final dryRun = argResults!['dry-run'] == true;
  final assumeYes = argResults!['yes'] == true;
  final scanner = ScannerService(
    fileSystem: context.fileSystem,
    platform: context.platform,
  );
  final caches = await scanner.cacheEntries();

  for (final entry in caches) {
    logger.info('${formatBytes(entry.bytes).padLeft(10)}  ${entry.path}');
  }

  if (dryRun) return CleanerExitCode.success.code;
  if (!context.terminal.confirm(
    'Run flutter pub cache gc?',
    defaultValue: false,
    assumeYes: assumeYes,
  )) {
    logger.warn('Cache GC cancelled.', tag: 'CACHE');
    return CleanerExitCode.success.code;
  }

  final result = await _runFlutterPubCacheGc(context.process);
  if (result.exitCode != 0) {
    logger.err('${result.stderr}'.trim());
    return result.exitCode;
  }
  logger.success(
    '${result.stdout}'.trim().isEmpty
        ? 'Flutter pub cache GC complete.'
        : '${result.stdout}'.trim(),
  );
  return CleanerExitCode.success.code;
}