use std::{ io::Write, process::{Command, Stdio}, }; use tracing::info; pub use crate::cli::Cli; pub use crate::config::Config; pub use crate::error::{Error, Result}; mod cli; mod config; mod error; #[tracing::instrument()] pub fn run(config: &Config) -> Result<()> { let mut finder = Command::new(&config.finder.program) .stdin(Stdio::piped()) .stdout(Stdio::piped()) .args(&config.finder.args) .spawn()?; finder .stdin .as_mut() .ok_or_else(|| Error::Finder("Failed to get finder's stdin".to_string()))? .write_all(config.paths.to_string().as_bytes())?; let output = finder.wait_with_output()?; info!("{:?}", output); Ok(()) }