From: Ian Jackson Date: Fri, 26 Mar 2021 19:03:35 +0000 (+0000) Subject: otter cli: Provide list-pieces X-Git-Tag: otter-0.5.0~391 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=76f0b915c12358080369f7bebc83703fa0c573c4;p=otter.git otter cli: Provide list-pieces Signed-off-by: Ian Jackson --- 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, + )} +}