aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorMustafa <mustafasalih1991@gmail.com>2021-05-11 21:21:26 +0300
committerMustafa <mustafasalih1991@gmail.com>2021-05-11 21:21:26 +0300
commit674f6811fe43dd0949052e225bf4c91a63de323e (patch)
treebb62d1334396634ce3e0f8306764deb647cdabfb /src/utils
parent96b47f199991657c23865b583155f110500070b4 (diff)
getting load-average programmatically, fully support BSD soon
Diffstat (limited to 'src/utils')
-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)
}