32 lines
681 B
Bash
Executable File
32 lines
681 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 ! streq "$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
|