Skip to content

Commit

Permalink
fix: --watch short arg detection (#7189)
Browse files Browse the repository at this point in the history
  • Loading branch information
DaniPopes authored Feb 20, 2024
1 parent 746321a commit ce585d2
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions crates/forge/bin/cmd/watch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,8 @@ fn watch_command(mut args: Vec<String>) -> Command {
fn cmd_args(num: usize) -> Vec<String> {
clean_cmd_args(num, std::env::args().collect())
}

#[instrument(level = "debug", ret)]
fn clean_cmd_args(num: usize, mut cmd_args: Vec<String>) -> Vec<String> {
if let Some(pos) = cmd_args.iter().position(|arg| arg == "--watch" || arg == "-w") {
cmd_args.drain(pos..=(pos + num));
Expand All @@ -274,11 +276,12 @@ fn clean_cmd_args(num: usize, mut cmd_args: Vec<String>) -> Vec<String> {
// this removes any `w` from concatenated short flags
if let Some(pos) = cmd_args.iter().position(|arg| {
fn contains_w_in_short(arg: &str) -> Option<bool> {
let mut iter = arg.chars();
if iter.next()? != '-' {
let mut iter = arg.chars().peekable();
if *iter.peek()? != '-' {
return None
}
if iter.next()? == '-' {
iter.next();
if *iter.peek()? == '-' {
return None
}
Some(iter.any(|c| c == 'w'))
Expand Down

0 comments on commit ce585d2

Please sign in to comment.