diff options
author | Joursoir <chat@joursoir.net> | 2023-03-01 17:59:20 +0400 |
---|---|---|
committer | Joursoir <chat@joursoir.net> | 2023-03-01 17:59:20 +0400 |
commit | 8e40b9ae042b715785004678b1bb3d3a4fca9838 (patch) | |
tree | c63b12a27bbfa771c066efad3ef769f533d918bd /src/main.rs | |
download | trgrep-8e40b9ae042b715785004678b1bb3d3a4fca9838.tar.gz trgrep-8e40b9ae042b715785004678b1bb3d3a4fca9838.tar.bz2 trgrep-8e40b9ae042b715785004678b1bb3d3a4fca9838.zip |
initial commit
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..76b2543 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,33 @@ +use std::error::Error; +use std::process; +use std::fs; + +use clap::Parser; + +#[derive(Parser)] +#[command(author, version, about, long_about = None)] // Read from `Cargo.toml` +struct Config { + /// The pattern to look for + pattern: String, + /// The path to the file to read + file: String, +} + +fn main() { + let config = Config::parse(); + + if let Err(e) = run(config) { + eprintln!("Error: {e}"); + process::exit(1); + } +} + +fn run(config: Config) -> Result<(), Box<dyn Error>> { + let contents = fs::read_to_string(config.file)?; + + for line in trgrep::search(&config.pattern, &contents) { + println!("{line}"); + } + + Ok(()) +} |