From 731b2214ad2c7cab1e9a6b350c77cd1853f560af Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 13 Jun 2022 00:22:10 +0100 Subject: [PATCH] cli: Provide set-access subcommand Signed-off-by: Ian Jackson --- cli/forgame.rs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/cli/forgame.rs b/cli/forgame.rs index 7ace4042..3ecfe3de 100644 --- a/cli/forgame.rs +++ b/cli/forgame.rs @@ -176,6 +176,47 @@ mod reset_game { } } +//---------- set-access ---------- + +mod set_access { + use super::*; + + #[derive(Default,Debug)] + struct Args { + table_file: String, + } + + fn subargs(sa: &mut Args) -> ArgumentParser { + use argparse::*; + let mut ap = ArgumentParser::new(); + + ap.refer(&mut sa.table_file).required() + .add_argument("TABLE-SPEC[-TOML",Store, + "table spec filename"); + ap + } + + fn call(SCCA{ ma, args,.. }:SCCA) -> Result<(),AE> { + let args = parse_args::(args, &subargs, &ok_id, None); + let instance_name = ma.instance(); + let mut chan = ma.access_game()?; + + let table_spec = read_spec(&ma, &args.table_file, SpecParseToml::new())?; + let insns = setup_table(&ma, &instance_name, &table_spec, false)?; + chan.alter_game(insns, None)?; + + if ma.verbose >= 0 { + eprintln!("access update successful."); + } + Ok(()) + } + + inventory_subcmd!{ + "set-access", + "Set the table's access control list", + } +} + //---------- set-link ---------- mod set_link { -- 2.30.2