#!/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
