summaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-11-03 16:47:57 -0500
committerToby Vincent <tobyv13@gmail.com>2022-11-03 16:47:57 -0500
commitc81eb9a1a542cc058960cf4eab12fc70bc2a81eb (patch)
tree8deff281230dbdedea29299060e214f1bb685cf7 /src/lib.rs
parent53d0cefcb1ca3527935479cc07a6f5fe5b1f8051 (diff)
feat: impl finder
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs25
1 files changed, 6 insertions, 19 deletions
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);