-use sysinfo::{ ProcessExt, SystemExt };\r
\r
use std::{ fs, time::SystemTime };\r
-\r
+use sysinfo::{ ProcessExt, SystemExt };\r
use chrono::{ DateTime, offset::Local };\r
\r
#[cfg(target_os = "linux")]\r
\r
#[derive(Clone, Debug)]\r
pub struct ValheimExe {\r
- memory: u64, // [kB].\r
+ memory: u64, // [B].\r
load_average_5min: f64, // [%].\r
uptime: u64, // [s].\r
world_size: u64, // [B].\r
\r
impl ValheimExe {\r
pub fn format_memory(&self) -> String {\r
- format_byte_size(self.memory * 1024, 2)\r
+ format_byte_size(self.memory, 2)\r
}\r
\r
pub fn format_load_average(&self) -> String {\r
pub fn get_valheim_executable_information(world_path: &str, backup_path: &str) -> Option<ValheimExe> {\r
let mut system = sysinfo::System::new_all();\r
system.refresh_system();\r
- let processes = system.get_process_by_name(VALHEIM_PROCESS_NAME);\r
+ let mut processes = system.processes_by_name(VALHEIM_PROCESS_NAME);\r
\r
- if processes.len() >= 1 {\r
- let process = processes.first().unwrap();\r
+ if let Some(process) = processes.next() {\r
\r
let world_size = match std::fs::metadata(world_path) { Ok(f) => f.len(), Err(_) => 0u64 };\r
\r
Some(\r
ValheimExe {\r
memory: process.memory(),\r
- load_average_5min: system.get_load_average().five / system.get_processors().len() as f64 * 100.,\r
+ load_average_5min: system.load_average().five / system.cpus().len() as f64 * 100.,\r
uptime: std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap().as_secs() - process.start_time(),\r
world_size,\r
active_players: get_active_players(),\r