radicle_term/
command.rs

1use std::io::Write;
2use std::process::{Command, Stdio};
3
4pub fn bat<S: AsRef<std::ffi::OsStr>>(
5    args: impl IntoIterator<Item = S>,
6    stdin: &str,
7) -> anyhow::Result<()> {
8    let mut child = Command::new("bat")
9        .stdin(Stdio::piped())
10        .args(args)
11        .spawn()?;
12
13    let writer = child.stdin.as_mut().unwrap();
14    writer.write_all(stdin.as_bytes())?;
15
16    child.wait()?;
17
18    Ok(())
19}