#![recursion_limit = "256"]
#[macro_use]
extern crate log;
use clap::Parser;
use microservices::error::BootstrapError;
use storm_node::stormd::Opts;
use storm_node::{stormd, Config, LaunchError};
fn main() -> Result<(), BootstrapError<LaunchError>> {
println!("stored: storage microservice");
let mut opts = Opts::parse();
trace!("Command-line arguments: {:?}", opts);
opts.process();
trace!("Processed arguments: {:?}", opts);
let config: Config<stormd::Config> = opts.clone().into();
trace!("Daemon configuration: {:?}", config);
debug!("MSG socket {}", config.msg_endpoint);
debug!("CTL socket {}", config.ctl_endpoint);
debug!("RPC socket {}", config.rpc_endpoint);
debug!("STORM socket {}", config.ext_endpoint);
debug!("STORE socket {}", config.store_endpoint);
debug!("CHAT socket {}", config.chat_endpoint);
debug!("Starting runtime ...");
stormd::run(config).expect("running stromd runtime");
unreachable!()
}