1
0

clean up battery code

This commit is contained in:
dtb 2023-11-19 20:49:46 -07:00
parent 407ea45346
commit 5b0230806b
3 changed files with 26 additions and 25 deletions

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# this is a dirty hack. # this is a dirty hack.
# acpi | awk '{print $4}' will print the battery percentage, # acpi | awk '{print $4}' will print the battery percentage, stripping the
# and s/,$// strips the trailing comma. # trailing comma
acpi | awk '{print $4}' | sed 's/,$//' acpi | awk '{sub(",$", "", $4); print $4}'

View File

@ -1,7 +1,10 @@
#!/bin/sh #!/bin/sh
envstat -s acpibat0:charge \ envstat -s acpibat0:charge \
| sed 1,2d \ | awk '
| cut -d ':' -f 2 \ NR == 3 {
| awk '{print $1}' \ sub("^[^:]*:", "", $1);
| cut -d '.' -f 1 sub(":.*", "", $1);
sub("\\..*", "", $1);
print $1;
}'

View File

@ -1,33 +1,31 @@
#!/bin/sh #!/bin/sh
set -e
POLLING_FREQUENCY=1 POLLING_FREQUENCY=1
# ISO 8601
alias date="date '+%Y-%m-%dT%T'"
emit() { alias date='printf "[%s] " "$(date +%Y-%m-%dT%T)"' # ISO 8601
printf "[%s] " "$(date)"
echo "$@"
}
! battery >/dev/null 2>&1 \ ! battery >/dev/null 2>&1 \
&& printf "Unable to get battery status on this system.\n" 1>&2 \ && ! printf "%s: Unable to get battery status on this system.\n" "$0" \
&& exit 1 \ 1>&2
|| true
current_level=$(battery) current_level="$(battery)"
previous_level=$current_level previous_level="$current_level"
emit "$(printf "Current level: %d%%" "$current_level")" date; printf "Current level: %d%%\n" "$current_level"
while true; do while true; do
current_level=$(battery) current_level="$(battery)"
if ! streq $current_level $previous_level; then date; if ! streq "$current_level" "$previous_level"; then
[ $current_level -lt $previous_level ] \ printf '%s: %s%% -> %s%%\n' "$(
&& emit "$(printf "Discharged: %d%% -> %d%%\n" $previous_level $current_level )" \ test "$current_level" -lt "$previous_level" \
|| emit "$(printf " Charged: %d%% -> %d%%\n" $previous_level $current_level )" && printf 'Discharged' \
|| printf ' Charged')" \
"$previous_level" "$current_level"
previous_level=$current_level previous_level=$current_level
fi fi
sleep $POLLING_FREQUENCY sleep "$POLLING_FREQUENCY"
done done