From: Ian Jackson Date: Mon, 10 Aug 2020 00:23:38 +0000 (+0100) Subject: parse args X-Git-Tag: otter-0.2.0~1141 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=f2fd58d019a047c19f889bc94289edebf5e2da0d;p=otter.git parse args --- diff --git a/src/bin/otter.rs b/src/bin/otter.rs index 76cabe81..b12cbd72 100644 --- a/src/bin/otter.rs +++ b/src/bin/otter.rs @@ -147,8 +147,6 @@ where T: Default, } fn main() { - use argparse::*; - #[derive(Default,Debug)] struct MainArgs { opts: MainOpts, @@ -158,6 +156,7 @@ fn main() { let ma = parse_args::( env::args().collect(), &|ma|{ + use argparse::*; let mut ap = ArgumentParser::new(); ap.stop_on_first_argument(true); ap.silence_double_dash(true); @@ -217,7 +216,24 @@ fn main() { inventory::submit!{Subcommand( "create-table", "Create a new table", |_sc, mainopts, args|{ - + #[derive(Default,Debug)] + struct Args { + name: String, + file: String, + } + let args = parse_args::(args, + &|ma|{ + use argparse::*; + let mut ap = ArgumentParser::new(); + ap.refer(&mut ma.name).required() + .add_argument("TABLE-NAME",Store,"table name"); + ap.refer(&mut ma.file).required() + .add_argument("TABLE-SPEC-TOML",Store,"table spec"); + ap + }, &|_ma|{ + Ok(()) + }, None); + eprintln!("CREATE-TABLE {:?} {:?}", &mainopts, &args); } )}