use std::{io::{BufRead, BufReader}, fs::File};
use clap::Parser;
use anyhow::{Context, Result, Ok};
#[derive(Parser)]
#[derive(Debug)]
struct Cli {
pattern: String,
#[clap(parse(from_os_str))]
path: std::path::PathBuf,
}
fn main() -> Result<()> {
let args = Cli::parse();
let pattern = &args.pattern;
let path = args.path.to_str().unwrap();
let file = File::open(path)
.with_context(|| format!("could not read file `{}`", path))?;
let reader = BufReader::new(file);
let content = reader.lines();
shea_grrs::find_matches(content, pattern, &mut std::io::stdout());
Ok(())
}