Browse Source

v0.1.0: some args handling

master v0.1.0
AJ ONeal 6 years ago
parent
commit
fa301ca9f1
  1. 4
      Cargo.lock
  2. 6
      README.md
  3. 9
      poem.txt
  4. 3
      src/lib.rs
  5. 37
      src/main.rs

4
Cargo.lock

@ -0,0 +1,4 @@
[[package]]
name = "grep"
version = "0.1.0"

6
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
```

9
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!

3
src/lib.rs

@ -0,0 +1,3 @@
pub fn run() {
println!("hello")
}

37
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<String> = 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(),
}
}

Loading…
Cancel
Save