diff options
| author | Teddy Wing | 2018-04-12 22:31:36 +0200 | 
|---|---|---|
| committer | Teddy Wing | 2018-04-12 22:31:36 +0200 | 
| commit | 3ddd9b28304c59d632bf5273e0daaec5132c26ab (patch) | |
| tree | 7a5a64fae1c5acecd04707fcf82f985042039236 | |
| parent | a96763889060a2450a135acaf34e0e462960d571 (diff) | |
| download | meetup-find-events-rss-3ddd9b28304c59d632bf5273e0daaec5132c26ab.tar.bz2 | |
Parse command line arguments and add help output
Include an option to pass a Meetup.com API token (not saved yet).
| -rw-r--r-- | src/main.rs | 36 | 
1 files changed, 35 insertions, 1 deletions
| diff --git a/src/main.rs b/src/main.rs index e7a11a9..963a510 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,37 @@ +extern crate getopts; + +use getopts::Options; + +use std::env; +use std::process::exit; + +fn print_usage(opts: Options) { +    let brief = "usage: meetup-find-events-rss"; +    print!("{}", opts.usage(&brief)); +} +  fn main() { -    println!("Hello, world!"); +    let args: Vec<String> = env::args().collect(); + +    let mut opts = Options::new(); +    opts.optopt( +        "", +        "meetup-api-token", +        "Meetup.com API token (required)", +        "TOKEN" +    ); +    opts.optflag("h", "help", "print this help menu"); + +    let opt_matches = match opts.parse(&args[1..]) { +        Ok(m) => m, +        Err(f) => { +            eprint!("meetup-find-events-rss: error: {}", f.to_string()); +            exit(1); +        }, +    }; + +    if opt_matches.opt_present("h") { +        print_usage(opts); +        return; +    }  } | 
