1
0
src/battery/batterymonitor
2022-10-23 02:20:19 -04:00

34 lines
728 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 ! streq $current_level $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