Index: sdk/lib/_internal/pub/lib/src/command/global_activate.dart |
diff --git a/sdk/lib/_internal/pub/lib/src/command/global_activate.dart b/sdk/lib/_internal/pub/lib/src/command/global_activate.dart |
index 8448af58e84ce72f61a0b730b6d3784ae7f1e9c1..5f451f9150a776de8ede1b9e2465fd1ee57787a3 100644 |
--- a/sdk/lib/_internal/pub/lib/src/command/global_activate.dart |
+++ b/sdk/lib/_internal/pub/lib/src/command/global_activate.dart |
@@ -22,9 +22,33 @@ 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-executables", 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-executables"]; |
var args = commandOptions.rest; |
readArg([String error]) { |
@@ -46,7 +70,8 @@ class GlobalActivateCommand extends PubCommand { |
var repo = readArg("No Git repository given."); |
// TODO(rnystrom): Allow passing in a Git ref too. |
validateNoExtraArgs(); |
- return globals.activateGit(repo); |
+ return globals.activateGit(repo, executables, |
+ overwriteBinStubs: overwrite); |
case "hosted": |
var package = readArg("No package to activate given."); |
@@ -62,12 +87,14 @@ class GlobalActivateCommand extends PubCommand { |
} |
validateNoExtraArgs(); |
- return globals.activateHosted(package, constraint); |
+ return globals.activateHosted(package, constraint, executables, |
+ overwriteBinStubs: overwrite); |
case "path": |
var path = readArg("No package to activate given."); |
validateNoExtraArgs(); |
- return globals.activatePath(path); |
+ return globals.activatePath(path, executables, |
+ overwriteBinStubs: overwrite); |
} |
throw "unreachable"; |