findit_cli/run_func.rs
1use std::io::Write;
2
3use crate::{
4 cli_args::CliArgs, errors::FindItError, filter::make_filters, quick_ref::show_syntax_help,
5 walker::Walker,
6};
7
8/// # Errors
9///
10/// Will return `Err` if anything goes wrong.
11pub fn run<W: Write + 'static>(args: &CliArgs, writer: W) -> Result<(), FindItError> {
12 if args.help_syntax {
13 show_syntax_help();
14 } else {
15 let walker = Walker::try_from(args)?;
16 let mut stepper = make_filters(args, writer)?;
17 walker.walk(&mut stepper)?;
18 }
19 Ok(())
20}