summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/flags.rs28
1 files changed, 20 insertions, 8 deletions
diff --git a/cli/flags.rs b/cli/flags.rs
index b827b7d27..44949f5dd 100644
--- a/cli/flags.rs
+++ b/cli/flags.rs
@@ -2509,14 +2509,10 @@ fn task_parse(
if let Some(task) = matches.value_of("task") {
task_name = task.to_string();
- if let Some(task_args) = matches.values_of("task_args") {
- // forward the `--` to the deno task
- if let Some(index) = matches.index_of("task_args") {
- if raw_args[index] == "--" {
- flags.argv.push("--".to_string());
- }
- }
- flags.argv.extend(task_args.map(String::from));
+ if let Some(index) = matches.index_of("task") {
+ flags
+ .argv
+ .extend(raw_args[index + 2..].iter().map(String::from));
}
}
@@ -5546,6 +5542,22 @@ mod tests {
}
#[test]
+ fn task_subcommand_double_hyphen_only() {
+ // edge case, but it should forward
+ let r = flags_from_vec(svec!["deno", "task", "build", "--"]);
+ assert_eq!(
+ r.unwrap(),
+ Flags {
+ subcommand: DenoSubcommand::Task(TaskFlags {
+ task: "build".to_string(),
+ }),
+ argv: svec!["--"],
+ ..Flags::default()
+ }
+ );
+ }
+
+ #[test]
fn task_following_arg() {
let r = flags_from_vec(svec!["deno", "task", "build", "-1", "--test"]);
assert_eq!(