println!("[");
let mut array = swaybar_object::SwaybarArray::new();
array.push_object(swaybar_object::SwaybarObject::default());
- array.push_object(swaybar_object::SwaybarObject::new());
- array.push_object(swaybar_object::SwaybarObject::default());
- let meminfo_string = proc::get_meminfo().expect("Should be able to get meminfo");
- let meminfo_object = swaybar_object::SwaybarObject::from_string(meminfo_string);
- array.push_object(meminfo_object);
+ {
+ let meminfo_string = proc::get_meminfo().expect("Should be able to get meminfo");
+ let meminfo_object = swaybar_object::SwaybarObject::from_string(meminfo_string);
+ array.push_object(meminfo_object);
+ }
+ {
+ let loadavg_string = proc::get_loadavg().expect("Should be able to get loadavg");
+ let loadavg_object = swaybar_object::SwaybarObject::from_string(loadavg_string);
+ array.push_object(loadavg_object);
+ }
println!("{}", array);
}
Ok(output)
}
}
+
+pub fn get_loadavg() -> io::Result<String> {
+ let mut loadavg_string = String::new();
+ {
+ let mut loadavg_file: File = File::open("/proc/loadavg")?;
+ loadavg_file.read_to_string(&mut loadavg_string)?;
+ }
+
+ let loadavg_parts: Vec<&str> = loadavg_string.split_whitespace().collect();
+ if loadavg_parts.len() < 3 {
+ return Err(io::Error::new(
+ io::ErrorKind::Other,
+ "loadavg: failed to parse",
+ ));
+ }
+
+ Ok(format!(
+ "{} {} {}",
+ loadavg_parts[0], loadavg_parts[1], loadavg_parts[2]
+ ))
+}