| Index: sdk/lib/_internal/pub/lib/src/command/list_package_dirs.dart
|
| diff --git a/sdk/lib/_internal/pub/lib/src/command/list_package_dirs.dart b/sdk/lib/_internal/pub/lib/src/command/list_package_dirs.dart
|
| index ea5b14080c83af452d4f2ca97e7ac8c6ddd727f4..fc05630b2db2b04a808f0bc7e78ebd335022c92a 100644
|
| --- a/sdk/lib/_internal/pub/lib/src/command/list_package_dirs.dart
|
| +++ b/sdk/lib/_internal/pub/lib/src/command/list_package_dirs.dart
|
| @@ -8,6 +8,8 @@ import 'dart:async';
|
| import 'dart:io';
|
| import 'dart:json' as json;
|
|
|
| +import 'package:path/path.dart' as path;
|
| +
|
| import '../command.dart';
|
| import '../exit_codes.dart' as exit_codes;
|
| import '../log.dart' as log;
|
| @@ -32,14 +34,26 @@ class ListPackageDirsCommand extends PubCommand {
|
| }
|
|
|
| var output = {};
|
| +
|
| + // Include the local paths to all locked packages.
|
| + var packages = {};
|
| var futures = [];
|
| entrypoint.loadLockFile().packages.forEach((name, package) {
|
| var source = entrypoint.cache.sources[package.source];
|
| futures.add(source.getDirectory(package).then((packageDir) {
|
| - output[name] = packageDir;
|
| + packages[name] = path.join(packageDir, "lib");
|
| }));
|
| });
|
|
|
| + output["packages"] = packages;
|
| +
|
| + // Include the self link.
|
| + packages[entrypoint.root.name] = path.join(entrypoint.root.dir, "lib");
|
| +
|
| + // Include the file(s) which when modified will affect the results. For pub,
|
| + // that's just the lockfile.
|
| + output["input_files"] = [entrypoint.lockFilePath];
|
| +
|
| return Future.wait(futures).then((_) {
|
| log.message(json.stringify(output));
|
| });
|
|
|