43 lines
1.1 KiB
Rust
43 lines
1.1 KiB
Rust
// SPDX-License-Identifier: GPL-3.0-Only
|
|
// Copyright (C) 2024 Luke Harding
|
|
|
|
use std::env;
|
|
|
|
use actix_web::{App, get, HttpResponse, HttpServer, Responder};
|
|
|
|
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::<u16>() {
|
|
port = env_port;
|
|
} else {
|
|
util::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!")
|
|
}
|