Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Unified Diff: sdk/lib/_internal/pub_generated/lib/src/command/global_activate.dart

Issue 657673002: Regenerate pub sources. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/pub_generated/lib/src/command/global_activate.dart
diff --git a/sdk/lib/_internal/pub_generated/lib/src/command/global_activate.dart b/sdk/lib/_internal/pub_generated/lib/src/command/global_activate.dart
index 493cf8db277fd41d39a446706b22138654ae0723..2e51a90ece18176e08804cf945ec32497c49ca09 100644
--- a/sdk/lib/_internal/pub_generated/lib/src/command/global_activate.dart
+++ b/sdk/lib/_internal/pub_generated/lib/src/command/global_activate.dart
@@ -1,12 +1,22 @@
+// 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.global_activate;
+
import 'dart:async';
+
import 'package:pub_semver/pub_semver.dart';
+
import '../command.dart';
import '../utils.dart';
+
+/// Handles the `global activate` pub command.
class GlobalActivateCommand extends PubCommand {
String get description => "Make a package's executables globally available.";
String get usage => "pub global activate <package...>";
bool get takesArguments => true;
+
GlobalActivateCommand() {
commandParser.addOption(
"source",
@@ -14,54 +24,69 @@ class GlobalActivateCommand extends PubCommand {
help: "The source used to find the package.",
allowed: ["git", "hosted", "path"],
defaultsTo: "hosted");
+
commandParser.addFlag(
"no-executables",
negatable: false,
help: "Do not put executables on PATH.");
+
commandParser.addOption(
"executable",
abbr: "x",
help: "Executable(s) to place on PATH.",
allowMultiple: true);
+
commandParser.addFlag(
"overwrite",
negatable: false,
help: "Overwrite executables from other packages with the same name.");
}
+
Future onRun() {
+ // Default to `null`, which means all executables.
var executables;
if (commandOptions.wasParsed("executable")) {
if (commandOptions.wasParsed("no-executables")) {
usageError("Cannot pass both --no-executables and --executable.");
}
+
executables = commandOptions["executable"];
} else if (commandOptions["no-executables"]) {
+ // An empty list means no executables.
executables = [];
}
+
var overwrite = commandOptions["overwrite"];
var args = commandOptions.rest;
+
readArg([String error]) {
if (args.isEmpty) usageError(error);
var arg = args.first;
args = args.skip(1);
return arg;
}
+
validateNoExtraArgs() {
if (args.isEmpty) return;
var unexpected = args.map((arg) => '"$arg"');
var arguments = pluralize("argument", unexpected.length);
usageError("Unexpected $arguments ${toSentence(unexpected)}.");
}
+
switch (commandOptions["source"]) {
case "git":
var repo = readArg("No Git repository given.");
+ // TODO(rnystrom): Allow passing in a Git ref too.
validateNoExtraArgs();
return globals.activateGit(
repo,
executables,
overwriteBinStubs: overwrite);
+
case "hosted":
var package = readArg("No package to activate given.");
+
+ // Parse the version constraint, if there is one.
var constraint = VersionConstraint.any;
if (args.isNotEmpty) {
try {
@@ -70,12 +95,14 @@ class GlobalActivateCommand extends PubCommand {
usageError(error.message);
}
}
+
validateNoExtraArgs();
return globals.activateHosted(
package,
constraint,
executables,
overwriteBinStubs: overwrite);
+
case "path":
var path = readArg("No package to activate given.");
validateNoExtraArgs();
@@ -84,6 +111,7 @@ class GlobalActivateCommand extends PubCommand {
executables,
overwriteBinStubs: overwrite);
}
+
throw "unreachable";
}
}

Powered by Google App Engine
This is Rietveld 408576698