Chromium Code Reviews| Index: utils/pub/command_update.dart |
| diff --git a/utils/pub/command_update.dart b/utils/pub/command_update.dart |
| index c1fe4f4816b65723c926c8684b30c3770c32da77..2bc03f76ec313fdab3fdb846b852b2490ae56d8e 100644 |
| --- a/utils/pub/command_update.dart |
| +++ b/utils/pub/command_update.dart |
| @@ -4,5 +4,24 @@ |
| /** Handles the `update` pub command. */ |
| void commandUpdate(PubOptions options, List<String> args) { |
| - throw 'not implemented yet'; |
| + // TODO(rnystrom): Should validate args. |
| + |
| + var entrypoint; |
| + var packagesDir; |
| + var dependencies; |
|
nweiz
2012/04/25 17:50:47
These should be listed in the same order they're a
Bob Nystrom
2012/04/25 22:20:29
Done.
|
| + |
| + getWorkingPackage().chain((package) { |
| + entrypoint = package; |
| + return package.traverseDependencies(); |
| + }).chain((packages) { |
| + dependencies = packages; |
| + // TODO(rnystrom): Make this path configurable. |
| + packagesDir = join(entrypoint.dir, 'packages'); |
| + return cleanDir(packagesDir); |
| + }).then((dir) { |
| + // Symlink each dependency. |
| + for (final package in dependencies) { |
| + createSymlink(package.dir, join(packagesDir, package.name)); |
| + } |
| + }); |
| } |