diff options
author | Manos Pitsidianakis <el13635@mail.ntua.gr> | 2020-11-04 19:05:50 +0200 |
---|---|---|
committer | Manos Pitsidianakis <el13635@mail.ntua.gr> | 2020-11-04 19:05:50 +0200 |
commit | 3f76beef1faed6dbe86e8dfc41bc7325ed7e0286 (patch) | |
tree | 9607a3cfc6dc164a7d874e4e8f2f25b982bc76fb | |
parent | 2f882127dddbdff6d714f38a66fcf48b2ce460cb (diff) |
Add error message in case of missing procfs
Closes #11
-rw-r--r-- | src/components/kernel.rs | 12 | ||||
-rw-r--r-- | src/components/processes.rs | 2 | ||||
-rw-r--r-- | src/components/utilities.rs | 2 | ||||
-rw-r--r-- | src/main.rs | 2 |
4 files changed, 10 insertions, 8 deletions
diff --git a/src/components/kernel.rs b/src/components/kernel.rs index 904f8e2..33d3295 100644 --- a/src/components/kernel.rs +++ b/src/components/kernel.rs @@ -46,14 +46,14 @@ impl fmt::Display for KernelMetrics { impl KernelMetrics { pub fn new() -> Self { - let mut file = File::open("/proc/sys/kernel/hostname").unwrap(); + let mut file = File::open("/proc/sys/kernel/hostname").expect(crate::PROC_FS_ERROR_STR); let mut hostname = String::new(); file.read_to_string(&mut hostname).unwrap(); let mut kernel = String::new(); - file = File::open("/proc/sys/kernel/version").unwrap(); + file = File::open("/proc/sys/kernel/version").expect(crate::PROC_FS_ERROR_STR); file.read_to_string(&mut kernel).unwrap(); let mut os_type = String::new(); - file = File::open("/proc/sys/kernel/ostype").unwrap(); + file = File::open("/proc/sys/kernel/ostype").expect(crate::PROC_FS_ERROR_STR); file.read_to_string(&mut os_type).unwrap(); let mut boot_time = 0; let cpu_stat = get_stat(&mut boot_time); @@ -370,7 +370,7 @@ impl Component for KernelMetrics { } /* Draw uptime */ - let mut file = File::open("/proc/uptime").unwrap(); + let mut file = File::open("/proc/uptime").expect(crate::PROC_FS_ERROR_STR); self.uptime.clear(); file.read_to_string(&mut self.uptime).unwrap(); let seconds: usize = @@ -530,7 +530,7 @@ impl Component for KernelMetrics { } fn get_mem_info() -> (usize, usize) { - let mut file = File::open("/proc/meminfo").unwrap(); + let mut file = File::open("/proc/meminfo").expect(crate::PROC_FS_ERROR_STR); let mut res = String::with_capacity(2048); file.read_to_string(&mut res).unwrap(); let mut mem_total = 0; @@ -554,7 +554,7 @@ fn get_mem_info() -> (usize, usize) { } fn get_loadavg() -> [String; 3] { - let mut file = File::open("/proc/loadavg").unwrap(); + let mut file = File::open("/proc/loadavg").expect(crate::PROC_FS_ERROR_STR); let mut res = String::with_capacity(2048); file.read_to_string(&mut res).unwrap(); let mut mut_value_iter = res.split_whitespace(); diff --git a/src/components/processes.rs b/src/components/processes.rs index 277a008..42b49b3 100644 --- a/src/components/processes.rs +++ b/src/components/processes.rs @@ -1832,7 +1832,7 @@ fn get(data: &mut ProcessData, follow_pid: Option<Pid>, sort: Sort) -> Vec<Proce let cpu_stat = cpu_stats.remove(0); let multiplier = (cpu_no as f64) * 10000.0; let divisor = (cpu_stat.total_time() - data_cpu_stat.total_time()) as f64; - for entry in std::fs::read_dir("/proc/").unwrap() { + for entry in std::fs::read_dir("/proc/").expect(crate::PROC_FS_ERROR_STR) { let dir = entry.unwrap(); if let Some(fname) = dir.file_name().to_str() { if !fname.chars().all(|c| c.is_numeric()) { diff --git a/src/components/utilities.rs b/src/components/utilities.rs index bb124cb..95a04b2 100644 --- a/src/components/utilities.rs +++ b/src/components/utilities.rs @@ -111,7 +111,7 @@ impl Stat { } pub fn get_stat(boot_time: &mut usize) -> Vec<Stat> { - let mut file = File::open("/proc/stat").unwrap(); + let mut file = File::open("/proc/stat").expect(crate::PROC_FS_ERROR_STR); let mut res = String::with_capacity(2048); file.read_to_string(&mut res).unwrap(); let mut lines_iter = res.lines(); diff --git a/src/main.rs b/src/main.rs index c103ee8..21796b8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -32,6 +32,8 @@ use std::sync::{ }; use std::time::Duration; +pub const PROC_FS_ERROR_STR: &str = "/proc/ filesystem not found, are you running this on linux?"; + //#[allow(dead_code)] mod text_processing; pub use crate::text_processing::*; |