chiark / gitweb /
startup: break out fn
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 7 Aug 2021 20:37:29 +0000 (21:37 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 7 Aug 2021 20:37:29 +0000 (21:37 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/client.rs
src/config.rs

index 57709fd933f740c72ad0369b818917a64eaa9abe..ad8da8128af46df9c319c44a3dae1154e9043821 100644 (file)
@@ -336,20 +336,9 @@ async fn run_client<C:HCC>(
 
 #[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);
index c65dbea2983247edc71274557ee49f35ece34034..bfb345e41dceb988a2588d193cd69aac7246ee11 100644 (file)
@@ -872,3 +872,21 @@ pub fn read(opts: &Opts, end: LinkEnd) -> Vec<InstanceConfig> {
 
   ics
 }
+
+pub fn startup(progname: &str, end: LinkEnd,
+               opts: &Opts, logopts: &LogOpts)
+               -> (Vec<InstanceConfig>,)
+{
+  (||{
+    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);
+  })
+}