From: Ian Jackson Date: Wed, 19 May 2021 21:24:09 +0000 (+0100) Subject: otter(1): Generalise alter-game-json ad-hoc subcommand (2) X-Git-Tag: otter-0.6.0~146 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=1866465b7a826597c274a16bf232a4661e7a17e8;p=otter.git otter(1): Generalise alter-game-json ad-hoc subcommand (2) Signed-off-by: Ian Jackson --- diff --git a/src/bin/otter.rs b/src/bin/otter.rs index 7bc4128b..27860d1d 100644 --- a/src/bin/otter.rs +++ b/src/bin/otter.rs @@ -1398,18 +1398,22 @@ mod alter_game_adhoc { let args = parse_args::(args, subargs, &ok_id, None); let mut chan = access_game(&ma, &args.table_name)?; - let insns = args.insns.iter().enumerate().map(|(i,s)|{ - serde_json::from_str(&s) + let insns = args.insns.iter().enumerate().map(|(i,s)| match fmtname { + "json" => serde_json::from_str(&s).map_err(AE::from), + _ => panic!(), + } .with_context(|| s.clone()) .with_context(|| format!("parse insn (#{})", i)) - }).collect::,AE>>()?; + ).collect::,AE>>()?; let resps = chan.alter_game(insns,None)?; for resp in resps { - println!("{}", - serde_json::to_string(&resp) - .context("re-format response")?); + println!("{}", match fmtname { + "json" => serde_json::to_string(&resp).map_err(AE::from), + _ => panic!(), + } + .context("re-format response")?); } Ok(()) }