2015-04-28 01:10:37 -04:00
|
|
|
extern crate pirate;
|
|
|
|
|
2015-06-16 14:28:14 -04:00
|
|
|
use std::env;
|
|
|
|
|
2015-06-23 12:00:50 +00:00
|
|
|
use pirate::{Matches, MatchesTrait, matches, usage, vars};
|
2015-04-28 01:10:37 -04:00
|
|
|
|
|
|
|
fn main() {
|
2015-06-16 14:28:14 -04:00
|
|
|
let env_args: Vec<String> = env::args().collect();
|
2015-06-23 12:00:50 +00:00
|
|
|
let opts = vec!["o/opt(An option)", "a(An Argument):"];
|
|
|
|
let mut vars = vars("test", &opts).unwrap();
|
2015-06-16 14:28:14 -04:00
|
|
|
|
2015-06-23 12:00:50 +00:00
|
|
|
let matches: Matches = match matches(&mut vars, &env_args) {
|
2015-06-10 18:14:11 +00:00
|
|
|
Ok(m) => m,
|
2015-06-16 14:28:14 -04:00
|
|
|
Err(why) => panic!("An error occurred: {}", why)
|
2015-04-28 01:10:37 -04:00
|
|
|
};
|
2015-06-16 14:28:14 -04:00
|
|
|
|
2015-06-23 12:00:50 +00:00
|
|
|
if matches.has_match("help") {
|
|
|
|
usage(&vars);
|
|
|
|
return;
|
2015-06-16 14:28:14 -04:00
|
|
|
}
|
2015-06-23 12:00:50 +00:00
|
|
|
|
|
|
|
let arg = match matches.get("a") {
|
|
|
|
Some(a) => a.clone(),
|
|
|
|
None => String::from("Pickle")
|
|
|
|
};
|
|
|
|
|
2015-06-16 14:28:14 -04:00
|
|
|
match matches.get("opt") {
|
|
|
|
Some(_) => println!("Opt was passed to the program"),
|
|
|
|
None => println!("Opt was not passed to the program")
|
2015-04-28 01:10:37 -04:00
|
|
|
}
|
2015-06-23 12:00:50 +00:00
|
|
|
|
|
|
|
println!("{}", arg);
|
2015-04-28 01:10:37 -04:00
|
|
|
}
|