1
0
Fork 0
src/niceties/batterymonitor

32 lines
682 B
Plaintext
Raw Normal View History

2022-05-18 21:44:50 +00:00
#!/bin/sh
2023-11-20 03:49:46 +00:00
set -e
2022-05-18 21:44:50 +00:00
POLLING_FREQUENCY=1
2023-11-20 03:49:46 +00:00
alias date='printf "[%s] " "$(date +%Y-%m-%dT%T)"' # ISO 8601
2022-05-18 21:44:50 +00:00
2022-09-17 21:55:31 +00:00
! battery >/dev/null 2>&1 \
2023-11-20 03:49:46 +00:00
&& ! printf "%s: Unable to get battery status on this system.\n" "$0" \
1>&2
2022-05-18 21:44:50 +00:00
2023-11-20 03:49:46 +00:00
current_level="$(battery)"
previous_level="$current_level"
2022-05-18 21:44:50 +00:00
2023-11-20 03:49:46 +00:00
date; printf "Current level: %d%%\n" "$current_level"
2022-05-18 21:44:50 +00:00
while true; do
2023-11-20 03:49:46 +00:00
current_level="$(battery)"
2023-12-19 07:16:49 +00:00
date; if ! strcmp "$current_level" "$previous_level"; then
2023-11-20 03:49:46 +00:00
printf '%s: %s%% -> %s%%\n' "$(
test "$current_level" -lt "$previous_level" \
&& printf 'Discharged' \
|| printf ' Charged')" \
"$previous_level" "$current_level"
2022-05-18 21:44:50 +00:00
previous_level=$current_level
fi
2023-11-20 03:49:46 +00:00
sleep "$POLLING_FREQUENCY"
2022-05-18 21:44:50 +00:00
done