From: Ian Jackson Date: Sat, 7 Aug 2021 20:37:29 +0000 (+0100) Subject: startup: break out fn X-Git-Tag: hippotat/1.0.0~256 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=caaf2f8148c5257563d44de751518081c72a839c;p=hippotat.git startup: break out fn Signed-off-by: Ian Jackson --- diff --git a/src/bin/client.rs b/src/bin/client.rs index 57709fd..ad8da81 100644 --- a/src/bin/client.rs +++ b/src/bin/client.rs @@ -336,20 +336,9 @@ async fn run_client( #[tokio::main] async fn main() { - let (ics,) =(||{ - dedup_eyre_setup()?; - let opts = Opts::from_args(); - - let ics = config::read(&opts.config, LinkEnd::Client)?; - if ics.is_empty() { throw!(anyhow!("no associations with server(s)")); } - - opts.log.log_init()?; - - Ok::<_,AE>((ics,)) - })().unwrap_or_else(|e| { - eprintln!("hippotat: startup error: {}", &e); - process::exit(8); - }); + let opts = Opts::from_args(); + let (ics,) = config::startup("hippotat", LinkEnd::Client, + &opts.config, &opts.log); let https = HttpsConnector::new(); let hclient = hyper::Client::builder().build::<_, hyper::Body>(https); diff --git a/src/config.rs b/src/config.rs index c65dbea..bfb345e 100644 --- a/src/config.rs +++ b/src/config.rs @@ -872,3 +872,21 @@ pub fn read(opts: &Opts, end: LinkEnd) -> Vec { ics } + +pub fn startup(progname: &str, end: LinkEnd, + opts: &Opts, logopts: &LogOpts) + -> (Vec,) +{ + (||{ + dedup_eyre_setup()?; + let ics = config::read(opts, end)?; + if ics.is_empty() { throw!(anyhow!("no associations, quitting")); } + + logopts.log_init()?; + + Ok::<_,AE>((ics,)) + })().unwrap_or_else(|e| { + eprintln!("{}: startup error: {}", progname, &e); + process::exit(8); + }) +}