diff options
author | Teddy Wing | 2018-04-15 00:42:35 +0200 |
---|---|---|
committer | Teddy Wing | 2018-04-15 00:43:07 +0200 |
commit | ba4929ff7ba4314db3ad2b749dfd35b78f1a6b20 (patch) | |
tree | 9060a576a8ee7374b61eaacab61c3aeb120df599 /src | |
parent | 3a88d7caf02bdb7da3753423d938cbd226879f0c (diff) | |
download | meetup-find-events-rss-ba4929ff7ba4314db3ad2b749dfd35b78f1a6b20.tar.bz2 |
Use 'error-chain' in `main()`
Display all our errors this way.
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs index 5e10b64..8961e86 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,5 @@ +#[macro_use] +extern crate error_chain; extern crate getopts; extern crate meetup_find_events_rss; @@ -9,12 +11,27 @@ use std::process::exit; use meetup_find_events_rss::build_rss; +mod errors { + error_chain! {} +} + +use errors::*; + +fn main() { + if let Err(ref e) = run() { + use error_chain::ChainedError; + + eprintln!("{}", e.display_chain()); + exit(1); + } +} + fn print_usage(opts: Options) { let brief = "usage: meetup-find-events-rss"; print!("{}", opts.usage(&brief)); } -fn main() { +fn run() -> Result<()> { let args: Vec<String> = env::args().collect(); let mut opts = Options::new(); @@ -36,7 +53,8 @@ fn main() { if opt_matches.opt_present("h") { print_usage(opts); - return; + + return Ok(()); } let meetup_token = opt_matches.opt_str("meetup-api-token").unwrap(); @@ -48,5 +66,7 @@ fn main() { "2018-04-14".to_owned(), None, None, - ).unwrap(); + ).chain_err(|| "could not write RSS feed.")?; + + Ok(()) } |