luciders/src/main.rs

40 lines
887 B
Rust
Raw Normal View History

use std::{net::TcpListener, process};
2024-10-29 20:58:10 +00:00
use ctrlc;
use http::responses::Response;
2024-10-29 20:58:10 +00:00
mod handlers;
2024-10-29 20:58:10 +00:00
mod http;
fn main() {
let listener =
2024-11-01 08:48:55 +00:00
TcpListener::bind("[::]:7878").unwrap_or_else(|_| fatal("Failed to bind to address"));
2024-10-29 20:58:10 +00:00
ctrlc::set_handler(move || {
println!("Shutting down...");
process::exit(0);
})
.unwrap_or_else(|_| fatal("Failed to set termination signal handler"));
let mut handlers = handlers::Handlers::new();
2024-10-29 20:58:10 +00:00
handlers.add_handler("/", |req| {
if req.method == "GET" {
Response::new(req, 200, "OK - luciders is running")
} else {
Response::new(req, 405, "Method Not Allowed")
2024-10-29 20:58:10 +00:00
}
});
2024-10-30 02:49:27 +00:00
handlers.bind(listener);
2024-10-29 20:58:10 +00:00
}
fn fatal(msg: &'static str) -> ! {
eprintln!("[FATAL] {}", msg);
process::exit(1);
}
fn error(msg: &'static str) {
eprintln!("[ERROR] {}", msg);
}