use std::process::Command;
use std::sync::{Arc, Mutex};
use std::io;
use std::io::Write;
pub fn execute_command(mut cmd: Command, out_perm: Arc<Mutex<()>>) {
let output = cmd.output();
match output {
Ok(output) => {
let _lock = out_perm.lock().unwrap();
let stdout = io::stdout();
let stderr = io::stderr();
let _ = stdout.lock().write_all(&output.stdout);
let _ = stderr.lock().write_all(&output.stderr);
}
Err(why) => {
if why.kind() == io::ErrorKind::NotFound {
eprintln!("fd: execution error: command not found");
} else {
eprintln!("fd: execution error: {}", why);
}
}
}
}