| Index: sdk/lib/_internal/pub/lib/src/command/cache_repair.dart
|
| diff --git a/sdk/lib/_internal/pub/lib/src/command/cache_repair.dart b/sdk/lib/_internal/pub/lib/src/command/cache_repair.dart
|
| index b16efe2f77bae181b151a9b8818fc534a14874b8..2884e30aad514e1f25b472bb8b2e9e86e71af08d 100644
|
| --- a/sdk/lib/_internal/pub/lib/src/command/cache_repair.dart
|
| +++ b/sdk/lib/_internal/pub/lib/src/command/cache_repair.dart
|
| @@ -19,33 +19,33 @@ class CacheRepairCommand extends PubCommand {
|
| String get usage => "pub cache repair";
|
| String get docUrl => "http://dartlang.org/tools/pub/cmd/pub-cache.html";
|
|
|
| - Future onRun() {
|
| + Future onRun() async {
|
| var successes = 0;
|
| var failures = 0;
|
|
|
| // Repair every cached source.
|
| - return Future.forEach(cache.sources.where(
|
| - (source) => source is CachedSource), (source) {
|
| - return source.repairCachedPackages().then((results) {
|
| - successes += results.first;
|
| - failures += results.last;
|
| - });
|
| - }).then((_) {
|
| - if (successes > 0) {
|
| - var packages = pluralize("package", successes);
|
| - log.message("Reinstalled ${log.green(successes)} $packages.");
|
| - }
|
| -
|
| - if (failures > 0) {
|
| - var packages = pluralize("package", failures);
|
| - log.message("Failed to reinstall ${log.red(failures)} $packages.");
|
| - }
|
| -
|
| - if (successes == 0 && failures == 0) {
|
| - log.message("No packages in cache, so nothing to repair.");
|
| - }
|
| -
|
| - if (failures > 0) return flushThenExit(exit_codes.UNAVAILABLE);
|
| - });
|
| + for (var source in cache.sources) {
|
| + if (source is! CachedSource) continue;
|
| +
|
| + var results = await source.repairCachedPackages();
|
| + successes += results.first;
|
| + failures += results.last;
|
| + }
|
| +
|
| + if (successes > 0) {
|
| + var packages = pluralize("package", successes);
|
| + log.message("Reinstalled ${log.green(successes)} $packages.");
|
| + }
|
| +
|
| + if (failures > 0) {
|
| + var packages = pluralize("package", failures);
|
| + log.message("Failed to reinstall ${log.red(failures)} $packages.");
|
| + }
|
| +
|
| + if (successes == 0 && failures == 0) {
|
| + log.message("No packages in cache, so nothing to repair.");
|
| + }
|
| +
|
| + if (failures > 0) return flushThenExit(exit_codes.UNAVAILABLE);
|
| }
|
| }
|
|
|