From cb8d23c45a72ba173076f9686a9a88ee529408c1 Mon Sep 17 00:00:00 2001 From: gaspar-ilom Date: Fri, 21 Feb 2025 22:55:14 +0100 Subject: [PATCH] fix battery health and charging display in system info calc was not found, but awk can do the job just fine and was anyway already used Signed-off-by: gaspar-ilom --- initrd/etc/functions | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/initrd/etc/functions b/initrd/etc/functions index 6f20e4a4..f4703116 100644 --- a/initrd/etc/functions +++ b/initrd/etc/functions @@ -1221,36 +1221,16 @@ fromhex_plain() { } print_battery_health() { - TRACE_FUNC - if ls /sys/class/power_supply/BAT* 1>/dev/null 2>&1; then - for battery in /sys/class/power_supply/BAT*; do - if [ -d "$battery" ]; then - charge_full=$(cat "$battery/charge_full") - charge_full_design=$(cat "$battery/charge_full_design") - battery_health=$(calc "$charge_full / $charge_full_design * 100" | awk -F "." '{print $1}') - DEBUG "Battery $battery health: $battery_health%" - echo "$battery_health" - fi - done - else - DEBUG "No battery found in /sys/class/power_supply/" + if [ -d /sys/class/power_supply/BAT* ]; then + battery_health=$(awk "BEGIN {printf \"%d\", ($(cat /sys/class/power_supply/BAT*/charge_full)/$(cat /sys/class/power_supply/BAT*/charge_full_design)*100)}") + echo "$battery_health" fi } print_battery_charge() { - TRACE_FUNC - if ls /sys/class/power_supply/BAT* 1>/dev/null 2>&1; then - for battery in /sys/class/power_supply/BAT*; do - if [ -d "$battery" ]; then - charge_now=$(cat "$battery/charge_now") - charge_full=$(cat "$battery/charge_full") - battery_charge=$(calc "$charge_now / $charge_full * 100" | awk -F "." '{print $1}') - DEBUG "Battery $battery charge: $battery_charge%" - echo "$battery_charge" - fi - done - else - DEBUG "No battery found in /sys/class/power_supply/" + if [ -d /sys/class/power_supply/BAT* ]; then + battery_charge=$(awk "BEGIN {printf \"%d\", ($(cat /sys/class/power_supply/BAT*/charge_now)/$(cat /sys/class/power_supply/BAT*/charge_full)*100)}") + echo "$battery_charge" fi }