extern crate askama;
use std::{ sync::Mutex, env::args, fs::File, io::prelude::* };
-
use actix_files as fs;
use actix_web::{ get, web, Responder, middleware, App, HttpServer };
use askama::Template;
use cached::proc_macro::cached;
mod consts;
-mod tests;
mod minecraft_controller;
#[derive(Template)]
#[template(path = "main.html")]
struct MainTemplate {
text_status: String,
+ version: String,
memory: String,
load_average: String,
uptime: String,
const VALUE_UNKNOWN: &str = "-";
#[cached(size = 1, time = 10)]
-fn get_minecraft_executable_information_cached(world_path: String, backup_path: String) -> Option<minecraft_controller::MinecraftExe> {
- minecraft_controller::get_minecraft_executable_information(&world_path, &backup_path)
+fn get_minecraft_executable_information_cached(world_path: String, backup_path: String, rcon_password: String) -> Option<minecraft_controller::MinecraftExe> {
+ minecraft_controller::get_minecraft_executable_information(&world_path, &backup_path, &rcon_password)
}
#[get("/")]
async fn main_page(config_shared: web::Data<Mutex<Config>>) -> impl Responder {
let config = config_shared.lock().unwrap();
- match get_minecraft_executable_information_cached(config.world_path.clone(), config.backup_path.clone()) {
+ match get_minecraft_executable_information_cached(config.world_path.clone(), config.backup_path.clone(), config.rcon_password.clone()) {
Some(info) =>
MainTemplate {
text_status: String::from("Minecraft server is up and running :)"),
+ version: info.format_version(),
memory: info.format_memory(),
load_average: info.format_load_average(),
uptime: info.format_uptime(),
let value_unknown = String::from(VALUE_UNKNOWN);
MainTemplate {
text_status: String::from("Minecraft server is down :("),
+ version: value_unknown.clone(),
memory: value_unknown.clone(),
load_average: value_unknown.clone(),
uptime: value_unknown.clone(),
world_size: value_unknown.clone(),
active_players: value_unknown.clone(),
- last_backup: value_unknown.clone() }
+ last_backup: value_unknown.clone()
+ }
}
}
}
print_usage();
return true
} else if args.iter().any(|arg| arg == "--status") {
- println!("{:?}", minecraft_controller::get_minecraft_executable_information(&config.world_path, &config.backup_path));
+ println!("{:?}", minecraft_controller::get_minecraft_executable_information(&config.world_path, &config.backup_path, &config.rcon_password));
return true
}