use std::env; use actix_web::{App, get, HttpResponse, HttpServer, Responder}; use crate::util::warn_println; mod util; #[actix_web::main] async fn main() -> std::io::Result<()> { util::print_copyright_notice(); // Default Server Values let mut port = 8000; let mut bind_addr = String::from("127.0.0.1"); // If env variable for port or bind_addr is present use that instead of default. if let Ok(env_port) = env::var("PORT") { if let Ok(env_port) = env_port.parse::() { port = env_port; } else { warn_println("Failed to parse PORT env variable using default value."); } } if let Ok(env_addr) = env::var("BIND_ADDR") { bind_addr = env_addr; } util::notice_println(format!("Starting server on {}:{}", bind_addr, port)); HttpServer::new(|| App::new().service(hello)) .bind((bind_addr, port))? .run() .await } #[get("/")] async fn hello() -> impl Responder { HttpResponse::Ok().body("Hello World!") }