| Index: sdk/lib/_internal/pub_generated/lib/src/command/cache_add.dart
|
| diff --git a/sdk/lib/_internal/pub/lib/src/command/cache_add.dart b/sdk/lib/_internal/pub_generated/lib/src/command/cache_add.dart
|
| similarity index 69%
|
| copy from sdk/lib/_internal/pub/lib/src/command/cache_add.dart
|
| copy to sdk/lib/_internal/pub_generated/lib/src/command/cache_add.dart
|
| index 8c8b4d8aaadcf78b4b00c8bd310ca799397a9009..8e9d45bd1c19055cc62215da452f91398c0997dd 100644
|
| --- a/sdk/lib/_internal/pub/lib/src/command/cache_add.dart
|
| +++ b/sdk/lib/_internal/pub_generated/lib/src/command/cache_add.dart
|
| @@ -1,50 +1,33 @@
|
| -// 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.cache_add;
|
| -
|
| import 'dart:async';
|
| -
|
| import '../command.dart';
|
| import '../log.dart' as log;
|
| import '../package.dart';
|
| import '../utils.dart';
|
| import '../version.dart';
|
| -
|
| -/// Handles the `cache add` pub command.
|
| class CacheAddCommand extends PubCommand {
|
| String get description => "Install a package.";
|
| String get usage =>
|
| "pub cache add <package> [--version <constraint>] [--all]";
|
| String get docUrl => "http://dartlang.org/tools/pub/cmd/pub-cache.html";
|
| bool get takesArguments => true;
|
| -
|
| CacheAddCommand() {
|
| - commandParser.addFlag("all",
|
| + commandParser.addFlag(
|
| + "all",
|
| help: "Install all matching versions.",
|
| negatable: false);
|
| -
|
| - commandParser.addOption("version", abbr: "v",
|
| - help: "Version constraint.");
|
| + commandParser.addOption("version", abbr: "v", help: "Version constraint.");
|
| }
|
| -
|
| Future onRun() {
|
| - // Make sure there is a package.
|
| if (commandOptions.rest.isEmpty) {
|
| usageError("No package to add given.");
|
| }
|
| -
|
| - // Don't allow extra arguments.
|
| if (commandOptions.rest.length > 1) {
|
| var unexpected = commandOptions.rest.skip(1).map((arg) => '"$arg"');
|
| var arguments = pluralize("argument", unexpected.length);
|
| usageError("Unexpected $arguments ${toSentence(unexpected)}.");
|
| }
|
| -
|
| var package = commandOptions.rest.single;
|
| -
|
| - // Parse the version constraint, if there is one.
|
| var constraint = VersionConstraint.any;
|
| if (commandOptions["version"] != null) {
|
| try {
|
| @@ -53,40 +36,26 @@ class CacheAddCommand extends PubCommand {
|
| usageError(error.message);
|
| }
|
| }
|
| -
|
| - // TODO(rnystrom): Support installing from git too.
|
| var source = cache.sources["hosted"];
|
| -
|
| - // TODO(rnystrom): Allow specifying the server.
|
| return source.getVersions(package, package).then((versions) {
|
| versions = versions.where(constraint.allows).toList();
|
| -
|
| if (versions.isEmpty) {
|
| - // TODO(rnystrom): Show most recent unmatching version?
|
| fail("Package $package has no versions that match $constraint.");
|
| }
|
| -
|
| downloadVersion(Version version) {
|
| var id = new PackageId(package, source.name, version, package);
|
| return cache.contains(id).then((contained) {
|
| if (contained) {
|
| - // TODO(rnystrom): Include source and description if not hosted.
|
| - // See solve_report.dart for code to harvest.
|
| log.message("Already cached ${id.name} ${id.version}.");
|
| return null;
|
| }
|
| -
|
| - // Download it.
|
| return source.downloadToSystemCache(id);
|
| });
|
| }
|
| -
|
| if (commandOptions["all"]) {
|
| - // Install them in ascending order.
|
| versions.sort();
|
| return Future.forEach(versions, downloadVersion);
|
| } else {
|
| - // Pick the best matching version.
|
| versions.sort(Version.prioritize);
|
| return downloadVersion(versions.last);
|
| }
|
|
|