personal-tracker/server/src/main.rs

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!")
}