AJ ONeal
6 years ago
5 changed files with 58 additions and 1 deletions
@ -0,0 +1,4 @@ |
|||||
|
[[package]] |
||||
|
name = "grep" |
||||
|
version = "0.1.0" |
||||
|
|
@ -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! |
@ -0,0 +1,3 @@ |
|||||
|
pub fn run() { |
||||
|
println!("hello") |
||||
|
} |
@ -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() { |
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…
Reference in new issue