X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=backend%2Fsrc%2Fmain.rs;h=88424da8aaee68b4b6d0a2662a088f0fbb4a5825;hb=7ebb570a4a158743200d0f5e53ab44ee823516f0;hp=d2607fd5350eaade99205935dcc5c57c7ad7f9d8;hpb=e9855a47ac1f9ebede015e89ec9cd1291c2876ea;p=valheim_web.git diff --git a/backend/src/main.rs b/backend/src/main.rs index d2607fd..88424da 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -2,12 +2,13 @@ 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 }; @@ -18,7 +19,10 @@ mod valheim_controller; #[derive(Template)] #[template(path = "main.html")] struct MainTemplate { - sentence: String, + text_status: String, + memory: String, + cpu: String, + uptime: String } #[derive(Deserialize)] @@ -26,14 +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 = + match valheim_controller::get_valheim_executable_information() { + Some(info) => + MainTemplate { + text_status: String::from("Valheim server is up and running :)"), + memory: info.format_memory(), + cpu: info.format_cpu_usage(), + 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(), cpu: 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)] @@ -66,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(); @@ -107,7 +130,7 @@ fn process_args() -> bool { print_usage(); return true } else if args.iter().any(|arg| arg == "--status") { - valheim_controller::is_valheim_running(); + println!("{:?}", valheim_controller::get_valheim_executable_information()); return true }