run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
Future<int> run() async {
final all = argResults!['all'] as bool;
final selectedFlutter = argResults!['flutter'] as bool;
final selectedOutputs = argResults!['outputs'] as bool;
final noSelection = !all && !selectedFlutter && !selectedOutputs;
final protectedPaths = <String>{};
var failure = 0;
if (all || selectedOutputs || noSelection) {
final outputs = <String>{
Files.androidDistributionOutputDir.path,
Files.iosDistributionOutputDir.path,
Files.customOutputDir.path,
};
try {
final config =
await ConfigParser.distributeYaml(configPath, globalResults);
outputs.addAll(config.builderOutputDirectories());
protectedPaths.addAll(config.protectedCredentialFiles());
} on ConfigException catch (error) {
logger.logWarning(
'Could not read $configPath; cleaning default outputs only: '
'${error.message}',
);
}
final service = CleanService(
logger,
dryRun: argResults!['dry-run'] as bool,
protectedPaths: protectedPaths,
);
final outputFailure = await service.outputs(outputs);
if (failure == 0) failure = outputFailure;
}
if (all || selectedFlutter || noSelection) {
final service = CleanService(
logger,
dryRun: argResults!['dry-run'] as bool,
protectedPaths: protectedPaths,
);
final flutterFailure = await service.flutterClean();
if (failure == 0) failure = flutterFailure;
}
return failure;
}