From d97e53cd5135335b5c837c5eed19a8c0f3ebc8bd Mon Sep 17 00:00:00 2001 From: can1357 Date: Thu, 13 Aug 2026 01:02:04 +0200 Subject: [PATCH] fix(bash): normalize msys pidfile paths --- crates/pi-builtins/src/proc_match.rs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/crates/pi-builtins/src/proc_match.rs b/crates/pi-builtins/src/proc_match.rs index fa060545f..3a247f840 100644 --- a/crates/pi-builtins/src/proc_match.rs +++ b/crates/pi-builtins/src/proc_match.rs @@ -887,11 +887,11 @@ fn parse_states(value: &str, target: &mut HashSet) -> std::result::Result< } fn resolve_shell_path(cwd: &Path, value: &str) -> PathBuf { - let path = Path::new(value); - if path.is_absolute() { - path.to_path_buf() + let normalized = brush_core::sys::fs::normalize_shell_path(Path::new(value)); + if normalized.is_absolute() { + normalized.into_owned() } else { - cwd.join(path) + cwd.join(normalized) } } @@ -957,3 +957,15 @@ fn write_proc_match_help( Ok(()) } +#[cfg(all(test, windows))] +mod tests { + use super::*; + + #[test] + fn resolves_msys_drive_alias_pidfiles() { + assert_eq!( + resolve_shell_path(Path::new(r"C:\workspace"), "/c/Users/Adam/app.pid"), + PathBuf::from(r"C:\Users\Adam\app.pid"), + ); + } +}