From 2a14893dcf420257d3d3d7170cac69df664837c7 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 8 Aug 2020 12:06:28 +0100 Subject: [PATCH] parse subcommand --- src/bin/otter.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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); -- 2.30.2