diff options
author | Toby Vincent <tobyv13@gmail.com> | 2022-11-01 17:48:54 -0500 |
---|---|---|
committer | Toby Vincent <tobyv13@gmail.com> | 2022-11-01 17:48:54 -0500 |
commit | 1334d9f1d08a27ea7fa4cd4228ac1fdf44bdd552 (patch) | |
tree | 78582f51069b7e40691e3aea78c7a93441098056 /src/lib.rs | |
parent | 698d811059ebb6787305e8293a77837323fc9311 (diff) |
feat: impl ignore crate to walk directories
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -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(()) } |