diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/main.rs b/src/main.rs index cba6d9e..547bae7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -63,7 +63,12 @@ impl Alias { } } -fn handle_alias(s: &str) { +fn write_alias(from: String) -> Result<(), AliasSearchError> { + let mut alias = Alias::new(&from); + let similar_aliases = try!(find_alias_in_file(&alias, "./testaliases")); + alias.update_alias_id(similar_aliases); + try!(alias.write_to_file("./testaliases")); + Ok(()) } #[derive(Debug)] @@ -128,17 +133,15 @@ fn find_alias_in_file(alias: &Alias, file: &str) -> Result<Vec<String>, AliasSea fn main() { let stdin = io::stdin(); - let input: Vec<String> = stdin.lock().lines().map(|line| line.unwrap()).collect(); - for line in &input { + for line in stdin.lock().lines() { + let line = line.unwrap(); if line.starts_with("From: ") { - println!("!!!!!!!! {}", line); - // run matcher function - handle_alias(line); + match write_alias(line) { + Ok(_) => return, + Err(AliasSearchError::NotFound) | Err(AliasSearchError::EmailExists) => return, + Err(e) => panic!(e), + }; } } - - for l in &input { - println!("{}", l); - } } |
