#!/bin/sh

# Prints all batteries, their percentage remaining and an emoji corresponding
# to charge status (🔌 for plugged up, 🔋 for discharging on battery, etc.).

case $BLOCK_BUTTON in
    3) notify-send "🔋 Battery module" "🔋: discharging
🛑: not charging
🔄;: stagnant charge
🔌: charging
⚡: charged
❗: battery very low!" ;;
esac

# Loop through all attached batteries.
for battery in /sys/class/power_supply/BAT?
do
	# Get its remaining capacity and charge status.
	capacity=$(cat "$battery"/capacity 2>/dev/null)
	if [ -n "$capacity" ]; then
		#do not print misreads
		[ "$capacity" -gt 100 ] &&
			echo "Error. Capacity:$capacity" > /dev/stderr &&
			continue
		# do not display full batteries (nice to unclutter status bars for laptops mostly used stationiary)
		[ "$capacity" -eq 100 ] &&
			printf '\n' &&
			continue

		status=$(sed "s/Discharging/🔋/;s/Not charging/🛑/;s/Charging/🔌/;s/Unknown/🔋/;s/Full/⚡/" "$battery"/status)
		# If it is discharging and 25% or less, we will add a ❗ as a warning.
		[ "$capacity" -le 25 ] &&
			[ "$status" = "🔋" ] &&
			warn="❗"
		printf "%s%s%s%%\n" "$status" "$warn" "$capacity"
		unset warn
	else
		echo "Error. Capacity:$capacity" > /dev/stderr #if battery fails during reading, quit
	fi
done | sed 's/ *$//'