From 76f0b915c12358080369f7bebc83703fa0c573c4 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 26 Mar 2021 19:03:35 +0000 Subject: [PATCH] otter cli: Provide list-pieces Signed-off-by: Ian Jackson --- src/bin/otter.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/bin/otter.rs b/src/bin/otter.rs index a161634b..d21aa859 100644 --- a/src/bin/otter.rs +++ b/src/bin/otter.rs @@ -1264,3 +1264,41 @@ mod library_add { call, )} } + +//---------- list-pieces ---------- + +mod list_pieces { + use super::*; + + #[derive(Default,Debug)] + struct Args { + table_name: String, + } + + fn subargs(sa: &mut Args) -> ArgumentParser { + use argparse::*; + let mut ap = ArgumentParser::new(); + ap.refer(&mut sa.table_name).required() + .add_argument("TABLE-NAME",Store,"table name"); + ap + } + + #[throws(AE)] + fn call(_sc: &Subcommand, ma: MainOpts, args: Vec) { + let args = parse_args::(args, &subargs, &ok_id, None); + let mut chan = access_game(&ma, &args.table_name)?; + let (pieces, pcaliases) = chan.list_pieces()?; + for p in pieces { + println!("{:?}", p); + } + for a in pcaliases { + println!("{:?}", a); + } + } + + inventory::submit!{Subcommand( + "list-pieces", + "List pieces in the game", + call, + )} +} -- 2.30.2