#[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);
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);
+ })
+}