#[tokio::main]
async fn main() {
let opts = Opts::from_args();
- let (ics,()) = config::startup("hippotat", LinkEnd::Client,
- &opts.config, &opts.log, |_|Ok(()));
+ let (ics,) = config::startup("hippotat", LinkEnd::Client,
+ &opts.config, &opts.log, |ics|Ok((ics,)));
let https = HttpsConnector::new();
let hclient = hyper::Client::builder()
async fn main() {
let opts = Opts::from_args();
let mut hservers = vec![];
- let (ics,(global,ipif)) = config::startup(
+ let (ics, global,ipif) = config::startup(
"hippotatd", LinkEnd::Server,
&opts.config, &opts.log, |ics|
{
hservers.push(task);
}
- Ok((global, ipif))
+ Ok((ics, global, ipif))
});
let x = future::select_all(&mut hservers).await;
pub fn startup<F,T>(progname: &str, end: LinkEnd,
opts: &Opts, logopts: &LogOpts,
- f: F)
- -> (Vec<InstanceConfig>,T)
- where F: FnOnce(&[InstanceConfig]) -> Result<T,AE>
+ f: F) -> T
+ where F: FnOnce(Vec<InstanceConfig>) -> Result<T,AE>
{
(||{
dedup_eyre_setup()?;
if ics.is_empty() { throw!(anyhow!("no associations, quitting")); }
logopts.log_init()?;
- let t = f(&ics)?;
+ let t = f(ics)?;
- Ok::<_,AE>((ics,t))
+ Ok::<_,AE>(t)
})().unwrap_or_else(|e| {
eprintln!("{}: startup error: {}", progname, &e);
process::exit(8);