1
0
Fork 0
src/niceties/batterymonitor

32 lines
682 B
Bash
Executable File

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