summaryrefslogtreecommitdiffstats
path: root/rust-cli/grrs/src/main.rs
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-12-21 15:56:24 +0100
committerivarlovlie <git@ivarlovlie.no>2022-12-21 15:56:24 +0100
commit0e1bf83811c4a9e4e2869190cfc94bf32476b9ee (patch)
treefd518a91cc92f756dc9b8959762f7553533ce60e /rust-cli/grrs/src/main.rs
parent87ee550abea331430fc2db0f1d96d6acbfa6c8f2 (diff)
downloadlearning-rust-0e1bf83811c4a9e4e2869190cfc94bf32476b9ee.tar.xz
learning-rust-0e1bf83811c4a9e4e2869190cfc94bf32476b9ee.zip
12/21/22 15:56:24
Diffstat (limited to 'rust-cli/grrs/src/main.rs')
-rw-r--r--rust-cli/grrs/src/main.rs23
1 files changed, 15 insertions, 8 deletions
diff --git a/rust-cli/grrs/src/main.rs b/rust-cli/grrs/src/main.rs
index 09e2d3a..e5ed13b 100644
--- a/rust-cli/grrs/src/main.rs
+++ b/rust-cli/grrs/src/main.rs
@@ -1,5 +1,4 @@
-use std::io::{BufReader, BufRead};
-use std::fs::File;
+use std::fs::{File};
use::clap::Parser;
#[derive(Parser)]
@@ -8,14 +7,22 @@ struct Cli {
path: std::path::PathBuf,
}
-
fn main() {
let args = Cli::parse();
- //println!("pattern: {}, path: {}",args.pattern, args.path.display());
+ if !args.path.exists() {
+ eprintln!("The file at '{}' does not exist", &args.path.display());
+ return;
+ }
+ if args.pattern.is_empty() {
+ eprintln!("No pattern was supplied, see --help");
+ return;
+ }
let file = File::open(args.path).expect("could not read file");
- let mut reader = BufReader::new(file);
- for line in reader.lines() {
- if line.unwrap_or_default().contains(&args.pattern) {
- }
+ let matches = grrs::find_matches(&file, &args.pattern).unwrap();
+ if matches.len() < 1 {
+ return;
+ }
+ for line in matches {
+ println!("{}", line);
}
}