feat: pass file descriptors to diff command
This commit is contained in:
@@ -519,12 +519,14 @@ fn mode_diff(cmd: &mut Command, args: Args, ids: &mut Vec<i64>, tags: &mut Vec<S
|
|||||||
|
|
||||||
let compression_engine_b = compression::get_engine(compression_type_b).expect("Unable to get compression engine");
|
let compression_engine_b = compression::get_engine(compression_type_b).expect("Unable to get compression engine");
|
||||||
|
|
||||||
let (_fd_a_read, fd_a_write) = unistd::pipe().unwrap();
|
let (fd_a_read, fd_a_write) = unistd::pipe().unwrap();
|
||||||
let (_fd_b_read, fd_b_write) = unistd::pipe().unwrap();
|
let (fd_b_read, fd_b_write) = unistd::pipe().unwrap();
|
||||||
|
|
||||||
let child = std::process::Command::new("diff")
|
let child = std::process::Command::new("diff")
|
||||||
.arg("-u")
|
.arg("-u")
|
||||||
.stdin(std::process::Stdio::piped())
|
.arg(format!("/dev/fd/{}", fd_a_read))
|
||||||
|
.arg(format!("/dev/fd/{}", fd_b_read))
|
||||||
|
.stdin(std::process::Stdio::null())
|
||||||
.stdout(std::process::Stdio::piped())
|
.stdout(std::process::Stdio::piped())
|
||||||
.stderr(std::process::Stdio::piped())
|
.stderr(std::process::Stdio::piped())
|
||||||
.spawn()
|
.spawn()
|
||||||
|
|||||||
Reference in New Issue
Block a user