X-Git-Url: http://git.euphorik.ch/index.cgi?a=blobdiff_plain;f=backend%2Fsrc%2Fmain.rs;h=ce9ae9f747c3b6a6d0c0505871ee24778bc6145b;hb=17b32f18e23bf3cd60f6cbcb24df6cc729d935c0;hp=99bebc3cd7aa284c6995acb3ce4c78b2a52bfa28;hpb=9a4fa224d81978e42349bfbc6688933d67d37566;p=valheim_web.git diff --git a/backend/src/main.rs b/backend/src/main.rs index 99bebc3..ce9ae9f 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -2,21 +2,27 @@ extern crate listenfd; extern crate askama; +// use futures::sink::With; use listenfd::ListenFd; use actix_files as fs; -use actix_web::{ get, web, Responder, middleware, App, HttpServer, web::Query }; +use actix_web::{ get, Responder, middleware, App, HttpServer, web::Query }; use askama::Template; -use std::{ sync::Mutex, fs::File, env::args, io::prelude::* }; +use std::{ /*sync::Mutex, */fs::File, env::args, io::prelude::* }; use ron::{ de::from_reader, ser::{ to_string_pretty, PrettyConfig } }; use serde::{ Deserialize, Serialize }; mod consts; +mod tests; +mod valheim_controller; #[derive(Template)] #[template(path = "main.html")] struct MainTemplate { - sentence: String, + text_status: String, + memory: String, + load_average: String, + uptime: String } #[derive(Deserialize)] @@ -24,12 +30,33 @@ pub struct Request { m: Option } +const VALUE_UNKNOWN: &str = "-"; + #[get("/")] async fn main_page(/*key_shared: web::Data>,*/ query: Query) -> impl Responder { //let key = key_shared.lock().unwrap(); - let m = String::from("hello"); + match valheim_controller::get_valheim_executable_information() { + Some(info) => + MainTemplate { + text_status: String::from("Valheim server is up and running :)"), + memory: info.format_memory(), + load_average: info.format_load_average(), + uptime: info.format_uptime() + }, + None => { + let value_unknown = String::from(VALUE_UNKNOWN); + MainTemplate { text_status: String::from("Valheim server is down :("), memory: value_unknown.clone(), load_average: value_unknown.clone(), uptime: value_unknown.clone() } + } + } + + /* + + let m = + if valheim_controller::is_valheim_running() { String::from("Valheim server is up and running") } else { String::from("Valheim server is down :(") }; + MainTemplate { sentence: m } + */ } #[derive(Debug, Deserialize, Serialize)] @@ -62,7 +89,7 @@ async fn main() -> std::io::Result<()> { if process_args() { return Ok(()) } - println!("Starting RUP as web server..."); + println!("Starting Valheim Admin as web server..."); let config = load_config(); @@ -94,7 +121,7 @@ async fn main() -> std::io::Result<()> { fn process_args() -> bool { fn print_usage() { println!("Usage:"); - println!(" {} [--help]", get_exe_name()); + println!(" {} [--help] [--status]", get_exe_name()); } let args: Vec = args().collect(); @@ -102,6 +129,9 @@ fn process_args() -> bool { if args.iter().any(|arg| arg == "--help") { print_usage(); return true + } else if args.iter().any(|arg| arg == "--status") { + println!("{:?}", valheim_controller::get_valheim_executable_information()); + return true } false