| Index: utils/pub/entrypoint.dart
|
| diff --git a/utils/pub/entrypoint.dart b/utils/pub/entrypoint.dart
|
| index a6afb14a2109bce79ffd3a9b0aef6481ef243e1c..a190c1ba3cdb6be618a7f8a270ffc4909d47a96c 100644
|
| --- a/utils/pub/entrypoint.dart
|
| +++ b/utils/pub/entrypoint.dart
|
| @@ -73,13 +73,14 @@ class Entrypoint {
|
| var packageDir = path.join(packagesDir, id.name);
|
| var future = defer(() {
|
| ensureDir(path.dirname(packageDir));
|
| - if (!dirExists(packageDir)) return;
|
|
|
| - // TODO(nweiz): figure out when to actually delete the directory, and when
|
| - // we can just re-use the existing symlink.
|
| - log.fine("Deleting package directory for ${id.name} before install.");
|
| - return deleteDir(packageDir);
|
| - }).then((_) {
|
| + if (dirExists(packageDir)) {
|
| + // TODO(nweiz): figure out when to actually delete the directory, and
|
| + // when we can just re-use the existing symlink.
|
| + log.fine("Deleting package directory for ${id.name} before install.");
|
| + deleteDir(packageDir);
|
| + }
|
| +
|
| if (id.source.shouldCache) {
|
| return cache.install(id).then(
|
| (pkg) => createPackageSymlink(id.name, pkg.dir, packageDir));
|
| @@ -130,7 +131,8 @@ class Entrypoint {
|
| /// Removes the old packages directory, installs all dependencies listed in
|
| /// [packageVersions], and writes a [LockFile].
|
| Future _installDependencies(List<PackageId> packageVersions) {
|
| - return cleanDir(packagesDir).then((_) {
|
| + return new Future.of(() {
|
| + cleanDir(packagesDir);
|
| return Future.wait(packageVersions.map((id) {
|
| if (id.isRoot) return new Future.immediate(id);
|
| return install(id);
|
| @@ -296,13 +298,12 @@ class Entrypoint {
|
| Future _linkSecondaryPackageDir(String dir) {
|
| return defer(() {
|
| var symlink = path.join(dir, 'packages');
|
| - return new Future.of(() {
|
| - if (fileExists(symlink)) {
|
| - deleteFile(symlink);
|
| - } else if (dirExists(symlink)) {
|
| - return deleteDir(symlink);
|
| - }
|
| - }).then((_) => createSymlink(packagesDir, symlink, relative: true));
|
| + if (fileExists(symlink)) {
|
| + deleteFile(symlink);
|
| + } else if (dirExists(symlink)) {
|
| + deleteDir(symlink);
|
| + }
|
| + return createSymlink(packagesDir, symlink, relative: true);
|
| });
|
| }
|
| }
|
|
|