use std::net::SocketAddr;
use aok::Void;
#[cfg(feature = "grpc")]
mod grpc;
#[cfg(feature = "grpc")]
pub use grpc::grpc;
pub async fn init() -> Void {
log_init::init();
static_::init().await
}
pub fn env_addr(name: &str, default: u16) -> SocketAddr {
macro_rules! default {
() => {
SocketAddr::from(([0, 0, 0, 0], default))
};
}
let addr = if let Ok(addr) = std::env::var(name) {
match addr.parse() {
Ok(addr) => addr,
Err(err) => {
log::error!("{name}={addr} ADDR PARSE ERROR: {err}");
default!()
}
}
} else {
default!()
};
log::info!("{name} {addr}");
addr
}