use libcli::args;
fn main() {
let specs = [
args::OptionSpec::new(
'\0',
"(unnamed)",
"Input files",
true,
args::OptionPolicy::AtLeast(1), ),
args::OptionSpec::new(
'o',
"output",
"Searches recursive",
true,
args::OptionPolicy::Exact(1),
),
args::OptionSpec::new(
'v',
"verbose",
"Shows verbose output",
false,
args::OptionPolicy::Exact(0),
),
args::OptionSpec::new(
'h',
"help",
"This is a\nMultiline\nHelp message",
false,
args::OptionPolicy::FinalizeIgnore(),
),
];
let config = args::Config::new_env(&specs).unwrap_or_else(|err| {
println!("{}", err);
std::process::exit(1);
});
println!("{:?}", config.option("help"));
if let Some(_) = config.option("help") {
println!(
"Myprogram\n{}",
args::Config::generate_usage(&specs, true, true)
);
return;
}
let verbose: bool = match config.option("verbose") {
Some(_) => true,
None => false,
};
let files = match config.option("(unnamed)") {
Some(v) => v,
None => panic!("Didn't get input files"),
};
if verbose {
println!("Reading files {:?}...", files);
}
}