chiark / gitweb /
wip library-add
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 26 Sep 2020 19:44:55 +0000 (20:44 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 26 Sep 2020 19:44:55 +0000 (20:44 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/otter.rs

index 1c1cc82cf82fcf58d855ecda49cb359b522e7663..e532409a746f381f0ef95ce3f67551a4e19397cc 100644 (file)
@@ -564,3 +564,51 @@ mod reset_game {
     call,
   )}
 }
+
+//---------- library-sdd ----------
+
+mod library_add {
+  use super::*;
+
+  #[derive(Default,Debug)]
+  struct Args {
+    name: String,
+    lib: String,
+    pat: String,
+  }
+
+  fn subargs(sa: &mut Args) -> ArgumentParser {
+    use argparse::*;
+    let mut ap = ArgumentParser::new();
+/*      .add_option(&["--no-add-markers"],StoreOption,
+                  "reset the players and access too");
+*/
+    ap.refer(&mut sa.name).required()
+      .add_argument("TABLE-NAME",Store,"table name");
+    ap.refer(&mut sa.lib).required()
+      .add_argument("LIB-NAME",Store,"library name");
+    ap.refer(&mut sa.pat).required()
+      .add_argument("ITEM-GLOB-PATTERN",Store,"item glob pattern");
+    ap
+  }
+
+  fn call(_sc: &Subcommand, ma: MainOpts, args: Vec<String>) ->Result<(),AE> {
+    let args = parse_args::<Args,_>(args, &subargs, None, None);
+    let mut chan = ConnForGame {
+      conn: connect(&ma)?,
+      name: args.name.clone(),
+      how: MgmtGameUpdateMode::Online,
+    };
+    let markers = chan.get_pieces()?.into_iter().filter(
+      |p| p.itemname == "mgmt-library-load-marker"
+    ).collect::<Vec<_>>();
+    dbg!(&markers);
+    Ok(())
+  }
+
+  inventory::submit!{Subcommand(
+    "library-add",
+    "Add pieces from the shape libraries",
+    call,
+  )}
+}