libperl_config/
process_util.rs

1pub use std::process::{Command, Output, ExitStatus};
2pub use std::io::{Error, ErrorKind};
3pub use std::result::Result;
4pub use std::path::Path;
5
6pub fn make_command(cmd_name: &str, args: &[&str]) -> Command {
7    let mut cmd = Command::new(cmd_name);
8    for cf in args.iter() {
9        cmd.arg(cf);
10    }
11    cmd
12}
13
14pub fn process_command_output(out: Output) -> Result<String, Error> {
15    let res = String::from_utf8_lossy(&out.stdout);
16
17    if out.stderr.len() > 0 {
18        let err = String::from_utf8_lossy(&out.stderr);
19        return Err(other_error([err, res].join(": ")));
20    }
21
22    Ok(res.to_string())
23}
24
25pub fn other_error(err: String) -> Error {
26    Error::new(ErrorKind::Other, err)
27}
28
29pub fn run_patch(dest_fn: &str, patch_fn: &str) -> ExitStatus {
30    Command::new("patch")
31        .arg("-t")
32        .arg(dest_fn)
33        .arg(patch_fn)
34        .status()
35        .unwrap()
36}
37
38