mirror of
https://github.com/denoland/deno.git
synced 2024-12-22 07:14:47 -05:00
fix(task): subcommand parser skips global args (#15297)
This commit is contained in:
parent
bdd8ddbe4c
commit
afc29c28ae
1 changed files with 21 additions and 1 deletions
|
@ -2582,7 +2582,8 @@ fn task_parse(
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(mut index) = matches.index_of("task_name_and_args") {
|
if let Some(mut index) = matches.index_of("task_name_and_args") {
|
||||||
index += 1; // skip `task`
|
let task_word_index = raw_args.iter().position(|el| el == "task").unwrap();
|
||||||
|
let raw_args = &raw_args[task_word_index..];
|
||||||
|
|
||||||
// temporary workaround until https://github.com/clap-rs/clap/issues/1538 is fixed
|
// temporary workaround until https://github.com/clap-rs/clap/issues/1538 is fixed
|
||||||
while index < raw_args.len() {
|
while index < raw_args.len() {
|
||||||
|
@ -5764,6 +5765,25 @@ mod tests {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn task_with_global_flags() {
|
||||||
|
// can fail if the custom parser in task_parse() starts at the wrong index
|
||||||
|
let r =
|
||||||
|
flags_from_vec(svec!["deno", "--quiet", "--unstable", "task", "build"]);
|
||||||
|
assert_eq!(
|
||||||
|
r.unwrap(),
|
||||||
|
Flags {
|
||||||
|
subcommand: DenoSubcommand::Task(TaskFlags {
|
||||||
|
cwd: None,
|
||||||
|
task: "build".to_string(),
|
||||||
|
}),
|
||||||
|
unstable: true,
|
||||||
|
log_level: Some(log::Level::Error),
|
||||||
|
..Flags::default()
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn task_subcommand_empty() {
|
fn task_subcommand_empty() {
|
||||||
let r = flags_from_vec(svec!["deno", "task"]);
|
let r = flags_from_vec(svec!["deno", "task"]);
|
||||||
|
|
Loading…
Reference in a new issue