summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs33
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(())
+}