From 82267654f883f894d2a32127d2bfecda4559bc73 Mon Sep 17 00:00:00 2001 From: Dustin Kirkland Date: Wed, 17 Jun 2009 17:45:38 -0500 Subject: [PATCH] * bin/battery: ensure that only one present battery is displayed in the status area Signed-off-by: Dustin Kirkland --- bin/battery | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/bin/battery b/bin/battery index 3b305e6b..756dae55 100755 --- a/bin/battery +++ b/bin/battery @@ -23,38 +23,26 @@ search () { local str expr str="$1" expr="$2" - echo "$str" | sed -n "s/${expr}/\1/p" } -BATS=$(ls /proc/acpi/battery) -NB=$(echo "$BATS" | wc -l) - if [ "$1" = "--detail" ]; then - for bat in $BATS; do + for bat in $(ls /proc/acpi/battery); do cat "/proc/acpi/battery/$bat/info" cat "/proc/acpi/battery/$bat/state" done exit 0 fi -for bat in $BATS; do - if [ "$NB" -gt 1 ]; then - echo -n "$bat: " - fi - - # read files once +for bat in $(ls /proc/acpi/battery); do + # make sure that this battery is present infofile=$(cat "/proc/acpi/battery/$bat/info") - statefile=$(cat "/proc/acpi/battery/$bat/state") - present=$(search "$infofile" "present: *\(.*\)") + [ "${present}" = "no" ] && continue - if [ "x${present}" = "xno" ]; then - echo "n/a" - break - fi - + # obtain full and remaining battery values + statefile=$(cat "/proc/acpi/battery/$bat/state") full=$(search "$infofile" "last full capacity: *\(.*\) m[AW]h") rem=$(search "$statefile" "remaining capacity: *\(.*\) m[AW]h") @@ -85,6 +73,6 @@ for bat in $BATS; do sign="$state" ;; esac - printf "\005%s%s|%s|\005{-} " "$per_color" "$percent" "$sign" + break done