summaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-11-01 17:48:54 -0500
committerToby Vincent <tobyv13@gmail.com>2022-11-01 17:48:54 -0500
commit1334d9f1d08a27ea7fa4cd4228ac1fdf44bdd552 (patch)
tree78582f51069b7e40691e3aea78c7a93441098056 /src/lib.rs
parent698d811059ebb6787305e8293a77837323fc9311 (diff)
feat: impl ignore crate to walk directories
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 872ca50..acaa475 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,3 +1,9 @@
+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};
@@ -8,5 +14,21 @@ 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(())
}