From 21ba985bdf0dd84991ccb32cd94302a577a35f8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Jos=C3=A9=20Pereira?= Date: Wed, 29 Nov 2023 20:42:32 -0300 Subject: [PATCH] Use sysinfo over sys-info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sysinfo has more features Signed-off-by: Patrick José Pereira --- Cargo.toml | 2 +- src/main.rs | 1 - src/mavlink/sys_info.rs | 28 +++++++++++++++------------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c5200de4..87402322 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,7 +37,7 @@ serde_json = "1.0" validator = { version = "0.16", features = ["derive"] } ## FINAL -sys-info = "0.9.1" +sysinfo = "0.29" chrono = "0.4.31" lazy_static = "1.4.0" include_dir = "0.7.3" diff --git a/src/main.rs b/src/main.rs index d05b1b24..227cd4b3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,6 @@ #[macro_use] extern crate lazy_static; extern crate paperclip; -extern crate sys_info; extern crate tracing; #[macro_use] diff --git a/src/mavlink/sys_info.rs b/src/mavlink/sys_info.rs index ccd96d3c..602224cc 100644 --- a/src/mavlink/sys_info.rs +++ b/src/mavlink/sys_info.rs @@ -1,3 +1,4 @@ +use sysinfo::{DiskExt, System, SystemExt}; use tracing::*; #[derive(Debug)] @@ -14,24 +15,25 @@ pub fn sys_info() -> SysInfo { let mut local_total_capacity = 0; let mut local_available_capacity = 0; - match sys_info::disk_info() { - Ok(disk_info) => { - local_available_capacity = disk_info.free; - local_total_capacity = disk_info.total; + let mut system = System::new_all(); + system.refresh_disks(); + + let main_disk = system + .disks() + .iter() + .find(|disk| disk.mount_point().as_os_str() == "/"); + match main_disk { + Some(disk_info) => { + local_available_capacity = disk_info.available_space(); + local_total_capacity = disk_info.total_space(); } - Err(error) => { - warn!("Failed to fetch disk info: {error:#?}."); + None => { + warn!("Failed to fetch main disk info."); } } - let boottime_ms = match sys_info::boottime() { - Ok(bootime) => bootime.tv_usec / 1000, - Err(error) => { - warn!("Failed to fetch boottime info: {error:#?}."); - 0 - } - }; + let boottime_ms = system.boot_time() * 1000; SysInfo { time_boot_ms: boottime_ms as u32,