From c81eb9a1a542cc058960cf4eab12fc70bc2a81eb Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Thu, 3 Nov 2022 16:47:57 -0500 Subject: feat: impl finder --- src/lib.rs | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 9e49b46..8f8b667 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -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); -- cgit v1.2.3-70-g09d2