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