use regex::Regex;
use std::fs::File;
use std::io::{self, BufRead, BufReader};
use doe::*;
fn main() -> io::Result<()> {
    // 从命令行参数中获取搜索模式和要搜索的文件名
    let args: Vec<String> = args!();
    if args.len() < 3 {
        if args.len()>2{

            eprintln!("Usage: krep <PATTERN> <FILE...>");
            std::process::exit(1);
        }
        else{

        }
    }
    let pattern = &args[1];
    let file_names = &args[2..];

    // 编译正则表达式
    let re = Regex::new(pattern).unwrap();

    // 遍历每个文件
    for file_name in file_names {
        // 打开文件并读取其中的内容
        let file = File::open(file_name)?;
        let reader = BufReader::new(file);

        // 遍历文件中的每一行，并进行模式匹配
        for (i, line) in reader.lines().enumerate() {
            let line = line.unwrap();
            if re.is_match(&line) {
                println!("{}:{}:{}", file_name, i + 1, line);
            }
        }
    }

    Ok(())
}
