aboutsummaryrefslogtreecommitdiff
path: root/src/utils/load_average.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/load_average.rs')
-rw-r--r--src/utils/load_average.rs18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/utils/load_average.rs b/src/utils/load_average.rs
index 70e4a72..414ab6f 100644
--- a/src/utils/load_average.rs
+++ b/src/utils/load_average.rs
@@ -1,18 +1,12 @@
use crate::config::CONFIG;
use crate::types::ThreadsData;
-use std::fs::File;
-use std::io::Read;
+use nix::sys::sysinfo;
pub fn get_load_avg() -> ThreadsData {
- let mut buf = String::new();
- match File::open("/proc/loadavg") {
- Ok(mut file) => match file.read_to_string(&mut buf) {
- Ok(data) => data,
- _ => return ThreadsData::LoadAvg(String::from("")),
- },
- _ => return ThreadsData::LoadAvg(String::from("Error")),
- };
- let buf = buf.split_whitespace().collect::<Vec<_>>()[0];
- let data = format!(" {} {} {}", CONFIG.loadavg.icon, buf, CONFIG.seperator);
+ let load = sysinfo::sysinfo().unwrap().load_average().0;
+ let data = format!(
+ " {} {:.2} {}",
+ CONFIG.loadavg.icon, load, CONFIG.seperator
+ );
ThreadsData::LoadAvg(data)
}