1
0
src/battery/batterymonitor
2022-09-17 17:55:31 -04:00

34 lines
730 B
Bash
Executable File

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