| Index: sdk/lib/_internal/pub/lib/src/source/hosted.dart
|
| diff --git a/sdk/lib/_internal/pub/lib/src/source/hosted.dart b/sdk/lib/_internal/pub/lib/src/source/hosted.dart
|
| index 3bb0ea14bfa1ab075996a807def53c3da6c6432a..825a87257384c62e6834b01a23c925754a16ff73 100644
|
| --- a/sdk/lib/_internal/pub/lib/src/source/hosted.dart
|
| +++ b/sdk/lib/_internal/pub/lib/src/source/hosted.dart
|
| @@ -124,30 +124,34 @@ class HostedSource extends CachedSource {
|
|
|
| /// Re-downloads all packages that have been previously downloaded into the
|
| /// system cache from any server.
|
| - Future<Pair<int, int>> repairCachedPackages() {
|
| - if (!dirExists(systemCacheRoot)) return new Future.value(new Pair(0, 0));
|
| + Future<Pair<int, int>> repairCachedPackages() async {
|
| + if (!dirExists(systemCacheRoot)) return new Pair(0, 0);
|
|
|
| var successes = 0;
|
| var failures = 0;
|
|
|
| - return Future.wait(listDir(systemCacheRoot).map((serverDir) {
|
| + for (var serverDir in listDir(systemCacheRoot)) {
|
| var url = _directoryToUrl(path.basename(serverDir));
|
| var packages = _getCachedPackagesInDirectory(path.basename(serverDir));
|
| packages.sort(Package.orderByNameAndVersion);
|
| - return Future.wait(packages.map((package) {
|
| - return _download(url, package.name, package.version, package.dir)
|
| - .then((_) {
|
| + for (var package in packages) {
|
| + try {
|
| + await _download(url, package.name, package.version, package.dir);
|
| successes++;
|
| - }).catchError((error, stackTrace) {
|
| + } catch (error, stackTrace) {
|
| failures++;
|
| var message = "Failed to repair ${log.bold(package.name)} "
|
| "${package.version}";
|
| if (url != defaultUrl) message += " from $url";
|
| log.error("$message. Error:\n$error");
|
| log.fine(stackTrace);
|
| - });
|
| - }));
|
| - })).then((_) => new Pair(successes, failures));
|
| +
|
| + tryDeleteEntry(package.dir);
|
| + }
|
| + }
|
| + }
|
| +
|
| + return new Pair(successes, failures);
|
| }
|
|
|
| /// Gets all of the packages that have been downloaded into the system cache
|
|
|