libperl_config/
process_util.rs1pub 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