From fa301ca9f1357922999bbed7dec9924b5ac19138 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Mon, 17 Sep 2018 23:33:56 -0600 Subject: [PATCH] v0.1.0: some args handling --- Cargo.lock | 4 ++++ README.md | 6 ++++++ poem.txt | 9 +++++++++ src/lib.rs | 3 +++ src/main.rs | 37 ++++++++++++++++++++++++++++++++++++- 5 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 Cargo.lock create mode 100644 poem.txt create mode 100644 src/lib.rs diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..ca1c600 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,4 @@ +[[package]] +name = "grep" +version = "0.1.0" + diff --git a/README.md b/README.md index c5aa653..fc0c09f 100644 --- a/README.md +++ b/README.md @@ -31,4 +31,10 @@ History ```bash cargo init --bin --name grep +cargo run + +git clone --depth=1 https://github.com/rust-lang/rust.vim.git ~/.vim/bundle/rust.vim +git clone --depth=1 https://github.com/majutsushi/tagbar.git ~/.vim/bundle/tagbar +echo 'let g:tagbar_ctags_bin = "/Users/aj/github.com/universal-ctags/ctags/ctags"' >> ~/.vimrc +echo 'let g:rustfmt_autosave = 1' >> ~/.vimrc ``` diff --git a/poem.txt b/poem.txt new file mode 100644 index 0000000..252667c --- /dev/null +++ b/poem.txt @@ -0,0 +1,9 @@ +I'm nobody! Who are you? +Are you nobody, too? +Then there's a pair of us - don't tell! +Theyd' banish us, you know. + +How dreary to be somebody! +How public, like a frog +To tell your name the livelong day +To an admiring bog! diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..fedc5ca --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,3 @@ +pub fn run() { + println!("hello") +} diff --git a/src/main.rs b/src/main.rs index e7a11a9..2bc4859 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,38 @@ +extern crate grep; + +use std::env; +use std::fs::File; +use std::io::prelude::*; + +struct Config { + query: String, + filename: String, +} + fn main() { - println!("Hello, world!"); + let args: Vec = env::args().collect(); + + let conf = parse_config(&args); + + println!("{:?} {:?}", conf.query, conf.filename); + + let mut f = File::open(&conf.filename).expect(&("file not found: ".to_owned() + &conf.filename)); + //let mut f = File::open(filename).expect(&format!("file not found: {}", &filename)); + + let mut contents = String::new(); + f.read_to_string(&mut contents) + .expect("something went wrong reading the file"); + + println!("Searching for '{}'", conf.query); + println!("In file '{}'", conf.filename); + println!("With text:\n{}", contents); +} + +//fn parse_config(args: &[String]) -> (&String, &String) +//fn parse_config(args: &[String]) -> (&str, &str) +fn parse_config(args: &[String]) -> Config { + Config { + query: args[1].clone(), + filename: args[2].clone(), + } }