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); |
} |