Skip to content

Commit

Permalink
feat: add support for exec()
Browse files Browse the repository at this point in the history
  • Loading branch information
mistydemeo committed Feb 27, 2024
1 parent ba6e04e commit 0cec873
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
pub use error::*;
use std::{
ffi::OsStr,
os::unix::process::CommandExt,
path::Path,
process::{Command, CommandArgs, CommandEnvs, ExitStatus, Stdio},
};
Expand Down Expand Up @@ -168,6 +169,7 @@ impl Cmd {
self.status()?;
Ok(())
}

/// Equivalent to [`std::process::Command::spawn`][],
/// but logged and with the error wrapped.
pub fn spawn(&mut self) -> Result<std::process::Child> {
Expand Down Expand Up @@ -213,6 +215,18 @@ impl Cmd {
self.status_inner()
}

/// Equivalent to [`std::process::Command::exec`][]
/// but logged, with the error wrapped
/// Note that, like the original, this will never return on success
pub fn exec(&mut self) -> Result<ExitStatus> {
self.log_command();
let cause = self.inner.exec();
Err(AxoprocessError::Exec {
summary: self.summary.clone(),
cause,
})
}

/// Actual impl of status, split out to support a polyfill
fn status_inner(&mut self) -> Result<ExitStatus> {
self.log_command();
Expand Down

0 comments on commit 0cec873

Please sign in to comment.