| Index: sdk/lib/_internal/pub_generated/lib/src/command/deps.dart
 | 
| diff --git a/sdk/lib/_internal/pub_generated/lib/src/command/deps.dart b/sdk/lib/_internal/pub_generated/lib/src/command/deps.dart
 | 
| deleted file mode 100644
 | 
| index ce5bcdd107fd219a8bf87c2179e2cbb60a75d3e6..0000000000000000000000000000000000000000
 | 
| --- a/sdk/lib/_internal/pub_generated/lib/src/command/deps.dart
 | 
| +++ /dev/null
 | 
| @@ -1,204 +0,0 @@
 | 
| -// Copyright (c) 2014, 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;
 | 
| -
 | 
| -import 'dart:async';
 | 
| -import 'dart:collection';
 | 
| -
 | 
| -import '../ascii_tree.dart' as tree;
 | 
| -import '../command.dart';
 | 
| -import '../log.dart' as log;
 | 
| -import '../package.dart';
 | 
| -import '../package_graph.dart';
 | 
| -import '../utils.dart';
 | 
| -
 | 
| -/// Handles the `deps` pub command.
 | 
| -class DepsCommand extends PubCommand {
 | 
| -  String get name => "deps";
 | 
| -  String get description => "Print package dependencies.";
 | 
| -  List<String> get aliases => const ["dependencies", "tab"];
 | 
| -  String get invocation => "pub deps";
 | 
| -  String get docUrl => "http://dartlang.org/tools/pub/cmd/pub-deps.html";
 | 
| -  bool get takesArguments => false;
 | 
| -
 | 
| -  /// The loaded package graph.
 | 
| -  PackageGraph _graph;
 | 
| -
 | 
| -  /// The [StringBuffer] used to accumulate the output.
 | 
| -  StringBuffer _buffer;
 | 
| -
 | 
| -  DepsCommand() {
 | 
| -    argParser.addOption(
 | 
| -        "style",
 | 
| -        abbr: "s",
 | 
| -        help: "How output should be displayed.",
 | 
| -        allowed: ["compact", "tree", "list"],
 | 
| -        defaultsTo: "tree");
 | 
| -  }
 | 
| -
 | 
| -  Future run() {
 | 
| -    return entrypoint.loadPackageGraph().then((graph) {
 | 
| -      _graph = graph;
 | 
| -      _buffer = new StringBuffer();
 | 
| -
 | 
| -      _buffer.writeln(_labelPackage(entrypoint.root));
 | 
| -
 | 
| -      switch (argResults["style"]) {
 | 
| -        case "compact":
 | 
| -          _outputCompact();
 | 
| -          break;
 | 
| -        case "list":
 | 
| -          _outputList();
 | 
| -          break;
 | 
| -        case "tree":
 | 
| -          _outputTree();
 | 
| -          break;
 | 
| -      }
 | 
| -
 | 
| -      log.message(_buffer);
 | 
| -    });
 | 
| -  }
 | 
| -
 | 
| -  /// Outputs a list of all of the package's immediate, dev, override, and
 | 
| -  /// transitive dependencies.
 | 
| -  ///
 | 
| -  /// For each dependency listed, *that* package's immediate dependencies are
 | 
| -  /// shown. Unlike [_outputList], this prints all of these dependencies on one
 | 
| -  /// line.
 | 
| -  void _outputCompact() {
 | 
| -    var root = entrypoint.root;
 | 
| -    _outputCompactPackages(
 | 
| -        "dependencies",
 | 
| -        root.dependencies.map((dep) => dep.name));
 | 
| -    _outputCompactPackages(
 | 
| -        "dev dependencies",
 | 
| -        root.devDependencies.map((dep) => dep.name));
 | 
| -    _outputCompactPackages(
 | 
| -        "dependency overrides",
 | 
| -        root.dependencyOverrides.map((dep) => dep.name));
 | 
| -
 | 
| -    var transitive = _getTransitiveDependencies();
 | 
| -    _outputCompactPackages("transitive dependencies", transitive);
 | 
| -  }
 | 
| -
 | 
| -  /// Outputs one section of packages in the compact output.
 | 
| -  _outputCompactPackages(String section, Iterable<String> names) {
 | 
| -    if (names.isEmpty) return;
 | 
| -
 | 
| -    _buffer.writeln();
 | 
| -    _buffer.writeln("$section:");
 | 
| -    for (var name in ordered(names)) {
 | 
| -      var package = _graph.packages[name];
 | 
| -
 | 
| -      _buffer.write("- ${_labelPackage(package)}");
 | 
| -      if (package.dependencies.isEmpty) {
 | 
| -        _buffer.writeln();
 | 
| -      } else {
 | 
| -        var depNames = package.dependencies.map((dep) => dep.name);
 | 
| -        var depsList = "[${depNames.join(' ')}]";
 | 
| -        _buffer.writeln(" ${log.gray(depsList)}");
 | 
| -      }
 | 
| -    }
 | 
| -  }
 | 
| -
 | 
| -  /// Outputs a list of all of the package's immediate, dev, override, and
 | 
| -  /// transitive dependencies.
 | 
| -  ///
 | 
| -  /// For each dependency listed, *that* package's immediate dependencies are
 | 
| -  /// shown.
 | 
| -  void _outputList() {
 | 
| -    var root = entrypoint.root;
 | 
| -    _outputListSection(
 | 
| -        "dependencies",
 | 
| -        root.dependencies.map((dep) => dep.name));
 | 
| -    _outputListSection(
 | 
| -        "dev dependencies",
 | 
| -        root.devDependencies.map((dep) => dep.name));
 | 
| -    _outputListSection(
 | 
| -        "dependency overrides",
 | 
| -        root.dependencyOverrides.map((dep) => dep.name));
 | 
| -
 | 
| -    var transitive = _getTransitiveDependencies();
 | 
| -    if (transitive.isEmpty) return;
 | 
| -
 | 
| -    _outputListSection("transitive dependencies", ordered(transitive));
 | 
| -  }
 | 
| -
 | 
| -  /// Outputs one section of packages in the list output.
 | 
| -  _outputListSection(String name, Iterable<String> deps) {
 | 
| -    if (deps.isEmpty) return;
 | 
| -
 | 
| -    _buffer.writeln();
 | 
| -    _buffer.writeln("$name:");
 | 
| -
 | 
| -    for (var name in deps) {
 | 
| -      var package = _graph.packages[name];
 | 
| -      _buffer.writeln("- ${_labelPackage(package)}");
 | 
| -
 | 
| -      for (var dep in package.dependencies) {
 | 
| -        _buffer.writeln(
 | 
| -            "  - ${log.bold(dep.name)} ${log.gray(dep.constraint)}");
 | 
| -      }
 | 
| -    }
 | 
| -  }
 | 
| -
 | 
| -  /// Generates a dependency tree for the root package.
 | 
| -  ///
 | 
| -  /// If a package is encountered more than once (i.e. a shared or circular
 | 
| -  /// dependency), later ones are not traversed. This is done in breadth-first
 | 
| -  /// fashion so that a package will always be expanded at the shallowest
 | 
| -  /// depth that it appears at.
 | 
| -  void _outputTree() {
 | 
| -    // The work list for the breadth-first traversal. It contains the package
 | 
| -    // being added to the tree, and the parent map that will receive that
 | 
| -    // package.
 | 
| -    var toWalk = new Queue<Pair<Package, Map>>();
 | 
| -    var visited = new Set<String>();
 | 
| -
 | 
| -    // Start with the root dependencies.
 | 
| -    var packageTree = {};
 | 
| -    for (var dep in entrypoint.root.immediateDependencies) {
 | 
| -      toWalk.add(new Pair(_graph.packages[dep.name], packageTree));
 | 
| -    }
 | 
| -
 | 
| -    // Do a breadth-first walk to the dependency graph.
 | 
| -    while (toWalk.isNotEmpty) {
 | 
| -      var pair = toWalk.removeFirst();
 | 
| -      var package = pair.first;
 | 
| -      var map = pair.last;
 | 
| -
 | 
| -      if (visited.contains(package.name)) {
 | 
| -        map[log.gray('${package.name}...')] = {};
 | 
| -        continue;
 | 
| -      }
 | 
| -
 | 
| -      visited.add(package.name);
 | 
| -
 | 
| -      // Populate the map with this package's dependencies.
 | 
| -      var childMap = {};
 | 
| -      map[_labelPackage(package)] = childMap;
 | 
| -
 | 
| -      for (var dep in package.dependencies) {
 | 
| -        toWalk.add(new Pair(_graph.packages[dep.name], childMap));
 | 
| -      }
 | 
| -    }
 | 
| -
 | 
| -    _buffer.write(tree.fromMap(packageTree, showAllChildren: true));
 | 
| -  }
 | 
| -
 | 
| -  String _labelPackage(Package package) =>
 | 
| -      "${log.bold(package.name)} ${package.version}";
 | 
| -
 | 
| -  /// Gets the names of the non-immediate dependencies of the root package.
 | 
| -  Set<String> _getTransitiveDependencies() {
 | 
| -    var transitive = _graph.packages.keys.toSet();
 | 
| -    var root = entrypoint.root;
 | 
| -    transitive.remove(root.name);
 | 
| -    transitive.removeAll(root.dependencies.map((dep) => dep.name));
 | 
| -    transitive.removeAll(root.devDependencies.map((dep) => dep.name));
 | 
| -    transitive.removeAll(root.dependencyOverrides.map((dep) => dep.name));
 | 
| -    return transitive;
 | 
| -  }
 | 
| -}
 | 
| 
 |