INNER CODE UNIT · Rust
run_command_success
0xKarl-dev/claw-codes · rust/crates/commands/src/lib.rs:955
fn run_command_success(program: &str, args: &[&str], cwd: &Path) -> io::Result<()> {
let output = Command::new(program).args(args).current_dir(cwd).output()?;
if !output.status.success() {
return Err(io::Error::other(command_failure(program, args, &output)));
}
Ok(())
}
fn command_failure(program: &str, args: &[&str], output: &std::process::Output) -> String {
let stderr = String::from_utf8_lossy(&output.stderr).trim().to_string();
let stdout = String::from_utf8_lossy(&output.stdout).trim().to_string();
let detail = if stderr.is_empty() { stdout } else { stderr };
if detail.is_empty() {
format!("{program} {} failed", args.join(" "))
} else {
format!("{program} {} failed: {detail}", args.join(" "))
}
}