Do not treat SIGPIPE as an error

This commit is contained in:
Ian Manske 2024-08-01 20:55:24 -07:00
parent db1ec3a7b8
commit 785aa880b1

View File

@ -31,24 +31,27 @@ impl ExitStatus {
} => { } => {
use nix::sys::signal::Signal; use nix::sys::signal::Signal;
let signal_name = Signal::try_from(signal) let sig = Signal::try_from(signal);
.map(Signal::as_str)
.unwrap_or("unknown signal")
.into();
Err(if core_dumped { if sig == Ok(Signal::SIGPIPE) {
ShellError::ProcessCoreDumped { // Processes often exit with SIGPIPE, but this is not an error condition.
signal_name, Ok(())
signal,
span,
}
} else { } else {
ShellError::ProcessSignaled { let signal_name = sig.map(Signal::as_str).unwrap_or("unknown signal").into();
signal_name, Err(if core_dumped {
signal, ShellError::ProcessCoreDumped {
span, signal_name,
} signal,
}) span,
}
} else {
ShellError::ProcessSignaled {
signal_name,
signal,
span,
}
})
}
} }
} }
} }