diff options
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 25 |
1 files changed, 6 insertions, 19 deletions
@@ -1,20 +1,16 @@ -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, PathError, Result}; -pub use crate::finder::Finder; pub use crate::directories::Directories; +pub use crate::error::{Error, Result}; +pub use crate::finder::Finder; mod cli; mod config; +mod directories; mod error; mod finder; -mod directories; #[tracing::instrument()] pub fn run(config: &Config) -> Result<()> { @@ -22,19 +18,10 @@ pub fn run(config: &Config) -> Result<()> { directories.walk()?; - 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(directories.as_stdin().as_bytes())?; + let mut finder = Finder::new(&config.finder)?; + finder.run(directories.directories)?; - let output = finder.wait_with_output()?; + let output = finder.child.wait_with_output()?; info!("{:?}", output); |