extern crate argparse;
use std::process::exit;
use argparse::{ArgumentParser, StoreTrue, Store};
struct Options {
verbose: bool,
name: String,
}
fn main() {
let mut options = Options {
verbose: false,
name: "World".to_string(),
};
{
let mut ap = ArgumentParser::new();
ap.set_description("Greet somebody.");
ap.refer(&mut options.verbose)
.add_option(&["-v", "--verbose"], StoreTrue,
"Be verbose");
ap.refer(&mut options.name)
.add_option(&["--name"], Store,
"Name for the greeting");
match ap.parse_args() {
Ok(()) => {}
Err(x) => {
exit(x);
}
}
}
if options.verbose {
println!("name is {}", options.name);
}
println!("Hello {}!", options.name);
}