Index: sdk/lib/_internal/pub_generated/lib/src/command/list_package_dirs.dart |
diff --git a/sdk/lib/_internal/pub_generated/lib/src/command/list_package_dirs.dart b/sdk/lib/_internal/pub_generated/lib/src/command/list_package_dirs.dart |
index de48749a2d184443ba4689a1d3ace8b9faf97ad2..6c08c762e3448b55fbe523f20900703862e4c900 100644 |
--- a/sdk/lib/_internal/pub_generated/lib/src/command/list_package_dirs.dart |
+++ b/sdk/lib/_internal/pub_generated/lib/src/command/list_package_dirs.dart |
@@ -1,25 +1,40 @@ |
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
library pub.command.list_package_dirs; |
+ |
import 'dart:async'; |
+ |
import 'package:path/path.dart' as path; |
+ |
import '../command.dart'; |
import '../log.dart' as log; |
import '../utils.dart'; |
+ |
+/// Handles the `list-package-dirs` pub command. |
class ListPackageDirsCommand extends PubCommand { |
String get description => "Print local paths to dependencies."; |
String get usage => "pub list-package-dirs"; |
bool get hidden => true; |
+ |
ListPackageDirsCommand() { |
commandParser.addOption( |
"format", |
help: "How output should be displayed.", |
allowed: ["json"]); |
} |
+ |
Future onRun() { |
log.json.enabled = true; |
+ |
if (!entrypoint.lockFileExists) { |
dataError('Package "myapp" has no lockfile. Please run "pub get" first.'); |
} |
+ |
var output = {}; |
+ |
+ // Include the local paths to all locked packages. |
var packages = {}; |
var futures = []; |
entrypoint.lockFile.packages.forEach((name, package) { |
@@ -28,11 +43,19 @@ class ListPackageDirsCommand extends PubCommand { |
packages[name] = path.join(packageDir, "lib"); |
})); |
}); |
+ |
output["packages"] = packages; |
+ |
+ // Include the self link. |
packages[entrypoint.root.name] = entrypoint.root.path("lib"); |
+ |
+ // Include the file(s) which when modified will affect the results. For pub, |
+ // that's just the pubspec and lockfile. |
output["input_files"] = [entrypoint.lockFilePath, entrypoint.pubspecPath]; |
+ |
return Future.wait(futures).then((_) { |
log.json.message(output); |
}); |
} |
} |
+ |