use joerl::epmd::{DEFAULT_EPMD_PORT, EpmdServer};
use std::time::Duration;
use tracing::{Level, info};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
tracing_subscriber::fmt()
.with_max_level(Level::INFO)
.with_target(false)
.with_thread_ids(false)
.compact()
.init();
let args: Vec<String> = std::env::args().collect();
let address = if args.len() > 1 {
args[1].clone()
} else {
format!("127.0.0.1:{}", DEFAULT_EPMD_PORT)
};
info!("========================================");
info!(" joerl EPMD Server v0.3.0");
info!("========================================");
info!("");
info!("Starting EPMD server on {}", address);
info!("Press Ctrl+C to stop");
info!("");
let server = EpmdServer::new(address).with_keep_alive_timeout(Duration::from_secs(60));
server.run().await?;
Ok(())
}