diff --git a/futriix-server/src/main.rs b/futriix-server/src/main.rs new file mode 100644 index 0000000..30950b3 --- /dev/null +++ b/futriix-server/src/main.rs @@ -0,0 +1,40 @@ +mod server; + +use server::*; +use std::fs; +use toml::Value; +use simplelog::*; + +#[tokio::main] +async fn main() -> Result<(), Box> { + // Read config + let config_content = fs::read_to_string("futriix.config.toml")?; + let config: Value = toml::from_str(&config_content)?; + + let ip = config["server"]["ip"].as_str().unwrap_or("127.0.0.1"); + let port = config["server"]["port"].as_integer().unwrap_or(8080) as u16; + let log_path = config["server"]["log_path"].as_str().unwrap_or("futriix.log"); + + // Initialize logger + let log_file = fs::File::create(log_path)?; + CombinedLogger::init(vec![ + TermLogger::new( + LevelFilter::Info, + Config::default(), + TerminalMode::Mixed, + ColorChoice::Auto, + ), + WriteLogger::new( + LevelFilter::Info, + Config::default(), + log_file, + ), + ])?; + + // Start server + let server = FutriixServer::new(); + let addr = format!("{}:{}", ip, port); + server.run(&addr).await?; + + Ok(()) +}