From 6a349a0e0282e56b03adbe02b41bfaf0cc3213f1 Mon Sep 17 00:00:00 2001 From: mustafa salih Date: Thu, 14 Jan 2021 05:41:01 +0300 Subject: orginized the code to seprated mods and deleted the lib file --- src/utils/battery.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/utils/battery.rs (limited to 'src/utils/battery.rs') diff --git a/src/utils/battery.rs b/src/utils/battery.rs new file mode 100644 index 0000000..b831773 --- /dev/null +++ b/src/utils/battery.rs @@ -0,0 +1,38 @@ +use crate::types::Config; +use std::fs::File; +use std::io::Error; +use std::io::Read; + +// getting battery percentage +pub fn get_battery(config: &Config) -> Result { + let battery_full_cap_file = format!( + "/sys/class/power_supply/{}/charge_full_design", + config.battery.source + ); + let battery_charge_now_file = format!( + "/sys/class/power_supply/{}/charge_now", + config.battery.source + ); + + let mut buf = String::new(); + + // FIXME: ugly error handling AGAIN fixing later, im lazy + match File::open(&battery_full_cap_file) { + Ok(mut file) => file.read_to_string(&mut buf)?, + Err(_) => return Ok(String::from("check your battery source name")), + }; + let full_design = buf.trim().parse::().unwrap(); + buf.clear(); + + // NOTE: no need to error check if passed the above match + File::open(&battery_charge_now_file)?.read_to_string(&mut buf)?; + + let charge_now = buf.trim().parse::().unwrap(); + + let battery_percentage = (charge_now as f32 / full_design as f32) * 100.0; + let result = format!( + " {} {:.0}% {}", + config.battery.icon, battery_percentage, config.seperator + ); + Ok(result) +} -- cgit v1.2.3