From: Ian Jackson Date: Sat, 8 Aug 2020 11:06:28 +0000 (+0100) Subject: parse subcommand X-Git-Tag: otter-0.2.0~1164 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=2a14893dcf420257d3d3d7170cac69df664837c7;p=otter.git parse subcommand --- diff --git a/src/bin/otter.rs b/src/bin/otter.rs index 57d6cf6d..a898ec4a 100644 --- a/src/bin/otter.rs +++ b/src/bin/otter.rs @@ -101,8 +101,15 @@ enum Subcommand { fn main() { let mainopts = (||{ let mut mainopts : MainOpts = Default::default(); + let mut args : Vec = vec![]; use argparse::*; + let mut ap = ArgumentParser::new(); + ap.stop_on_first_argument(true); + ap.silence_double_dash(true); + ap.refer(&mut args).add_argument("subcommand",Collect, + "subcommand and argueents"); + let mut scope = ap.refer(&mut mainopts.scope); scope.add_option(&["--scope-server"], StoreConst(Some(ManagementScope::Server)), @@ -115,6 +122,7 @@ fn main() { scope.add_option(&["--scope-unix"], StoreConst(None), "use USER scope"); + ap.parse_args()?; mem::drop(ap); mainopts.scope.get_or_insert_with(||{ @@ -126,7 +134,7 @@ fn main() { }); ManagementScope::Unix { user } }); - >::Ok(mainopts) + >::Ok((mainopts, args)) /* Cell::from_mut(&mut mainopts.scope);