| 19 | } |
| 20 | |
| 21 | fn main() -> Result<()> { |
| 22 | let matches = app_from_crate!() |
| 23 | .setting(clap::AppSettings::SubcommandRequiredElseHelp) |
| 24 | .subcommand( |
| 25 | SubCommand::with_name("generate") |
| 26 | .arg(Arg::with_name("inputs").required(true).multiple(true)) |
| 27 | .arg( |
| 28 | Arg::with_name("output") |
| 29 | .short("o") |
| 30 | .long("output") |
| 31 | .takes_value(true) |
| 32 | .required(true), |
| 33 | ), |
| 34 | ) |
| 35 | .subcommand( |
| 36 | SubCommand::with_name("generate-api").about("generate api.hpp from current snapshot"), |
| 37 | ) |
| 38 | .get_matches(); |
| 39 | |
| 40 | if let Some(generate) = matches.subcommand_matches("generate") { |
| 41 | let inputs = generate |
| 42 | .values_of("inputs") |
| 43 | .expect("required inputs arg") |
| 44 | .collect::<Vec<_>>(); |
| 45 | let output = generate.value_of("output").expect("required output arg"); |
| 46 | run(&inputs, &output)?; |
| 47 | } else { |
| 48 | unreachable!("a subcommand must be provided"); |
| 49 | } |
| 50 | |
| 51 | Ok(()) |
| 52 | } |