summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManos Pitsidianakis <el13635@mail.ntua.gr>2020-11-04 19:05:50 +0200
committerManos Pitsidianakis <el13635@mail.ntua.gr>2020-11-04 19:05:50 +0200
commit3f76beef1faed6dbe86e8dfc41bc7325ed7e0286 (patch)
tree9607a3cfc6dc164a7d874e4e8f2f25b982bc76fb
parent2f882127dddbdff6d714f38a66fcf48b2ce460cb (diff)
Add error message in case of missing procfs
Closes #11
-rw-r--r--src/components/kernel.rs12
-rw-r--r--src/components/processes.rs2
-rw-r--r--src/components/utilities.rs2
-rw-r--r--src/main.rs2
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::*;