]> git.seodisparate.com - swaybar_info/commitdiff
Fixes to builtin::BattInfo usage
authorStephen Seo <seo.disparate@gmail.com>
Tue, 26 Jul 2022 12:18:59 +0000 (21:18 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Tue, 26 Jul 2022 12:19:29 +0000 (21:19 +0900)
src/args.rs
src/main.rs

index e99c1450615ad5bbf3090436441b953c1be75ef7..6ce46b13e43a62bcd8499eb4705eeca63087e4ef 100644 (file)
@@ -56,7 +56,7 @@ pub fn print_usage() {
         .ok();
     stderr_handle
         .write_all(
-            b"  --acpi-builtin\t\t\t\tUse \"acpi -b\" built-in fetching (battery info, with color)\n",
+            b"  --acpi-builtin\t\t\t\t\tUse \"acpi -b\" built-in fetching (battery info, with color)\n",
         )
         .ok();
     stderr_handle
index 25204b8545cadf3739323454bfcd13f060070660..624c91d01c266bf9f4204c5681618b6c031ab1c6 100644 (file)
@@ -74,10 +74,8 @@ fn main() {
     }
 
     let mut batt_info: builtin::BattInfo = Default::default();
-    {
-        let mut temp_object = SwaybarObject::new("battinfo".to_owned());
-        batt_info.update(&mut temp_object).ok();
-    }
+    let batt_info_enabled: bool = args_result.map.contains_key("acpi-builtin");
+    let mut batt_info_error: bool = false;
 
     println!(
         "{}",
@@ -212,15 +210,20 @@ fn main() {
         }
 
         // batt_info
-        if !batt_info.is_error_state() {
+        if batt_info_enabled {
             if is_empty {
                 let mut new_object = SwaybarObject::new("battinfo".to_owned());
                 if batt_info.update(&mut new_object).is_ok() {
                     array.push_object(new_object);
+                } else {
+                    new_object.update_as_error("BATTINFO ERROR".to_owned());
+                    array.push_object(new_object);
+                    batt_info_error = true;
                 }
             } else if let Some(obj) = array.get_by_name_mut("battinfo") {
-                if batt_info.update(obj).is_err() {
+                if !batt_info_error && batt_info.update(obj).is_err() {
                     obj.update_as_error("BATTINFO ERROR".to_owned());
+                    batt_info_error = true;
                 }
             }
         }