chiark / gitweb /
parse subcommand
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 8 Aug 2020 11:06:28 +0000 (12:06 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 8 Aug 2020 11:06:28 +0000 (12:06 +0100)
src/bin/otter.rs

index 57d6cf6dfe86dba1db49cfc41e711c34adfc6bc1..a898ec4aabd117b1c1e3e6503c01188c19a13dca 100644 (file)
@@ -101,8 +101,15 @@ enum Subcommand {
 fn main() {
   let mainopts = (||{
     let mut mainopts : MainOpts = Default::default();
+    let mut args : Vec<String> = 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 }
     });
-    <Result<_,i32>>::Ok(mainopts)
+    <Result<_,i32>>::Ok((mainopts, args))
     /*
 
     Cell::from_mut(&mut mainopts.scope);