From: Ian Jackson Date: Sun, 6 Jun 2021 21:24:19 +0000 (+0100) Subject: otter: Break out ArgumentParseError::report X-Git-Tag: otter-0.7.0~68 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=df2858174e40fc66a43ea06d56fcda85654eddd6;p=otter.git otter: Break out ArgumentParseError::report Signed-off-by: Ian Jackson --- diff --git a/cli/clisupport.rs b/cli/clisupport.rs index 51b8c8ef..54ec5a3d 100644 --- a/cli/clisupport.rs +++ b/cli/clisupport.rs @@ -47,6 +47,16 @@ impl From<&anyhow::Error> for ArgumentParseError { } } +impl ArgumentParseError { + fn report(self, us: &str, apmaker: ApMaker) -> ! { + let mut stderr = io::stderr(); + let mut def = default(); + let ap = apmaker(&mut def); + ap.error(us, &self.0, &mut stderr); + exit(EXIT_USAGE); + } +} + pub fn default_ssh_proxy_command() -> String { format!("{} {}", DEFAULT_SSH_PROXY_CMD, SSH_PROXY_SUBCMD) } @@ -149,15 +159,7 @@ pub fn run_ap_completer(parsed: T, us: String, apmaker: ApMaker, completer: ApCompleter) -> U where T: Default { - let mut stderr = io::stderr(); - - completer(parsed) - .unwrap_or_else(|e:ArgumentParseError| { - let mut def = default(); - let ap = apmaker(&mut def); - ap.error(&us, &e.0, &mut stderr); - exit(EXIT_USAGE); - }) + completer(parsed).unwrap_or_else(|e| e.report(&us,apmaker)) } pub fn parse_args(