#!/bin/sh
# Battery indicator for dwmblocks

# Total battery charge
total=0
batteries=0
for battery in /sys/class/power_supply/BAT?* ; do
    capacity=$(cat $battery/capacity 2>/dev/null || break)
    total=$((capacity+total))
    batteries=$(($batteries+1))
done

# If there's a total, get average, if else, print a plug
[ $total -gt 0 ] && bat=$(($total/$batteries)) || bat="󰚥"
[ "$bat" = "󰚥" ] && echo "$bat" && exit

# If something is charging, change status
grep -rq 'Charging' /sys/class/power_supply/BAT* 2>/dev/null && stat='Charging'

# Get graphical battery level
case 1 in
    $((bat >= 98))  ) icon="󰁹" ;;
    $((bat >= 90))  ) icon="󰂂" ;;
    $((bat >= 80))  ) icon="󰂁" ;;
    $((bat >= 70))  ) icon="󰂀" ;;
    $((bat >= 60))  ) icon="󰁿" ;;
    $((bat >= 50))  ) icon="󰁾" ;;
    $((bat >= 40))  ) icon="󰁽" ;;
    $((bat >= 30))  ) icon="󰁼" ;;
    $((bat >= 20))  ) icon="󰁻" ;;
    $((bat >= 10))  ) icon="󰁺" ;;
    $((bat >=  0))  ) icon="󰂎" ;;
esac

# Charging indicator if status file indicates such state
if [ "$stat" = "Charging" ] ; then
    icon="$(printf '%s' "$icon" | sed '
        s/󰁹/󰂅/;
        s/󰂂/󰂋/;
        s/󰂁/󰂊/;
        s/󰂀/󰢞/;
        s/󰁿/󰂉/;
        s/󰁾/󰢝/;
        s/󰁽/󰂈/;
        s/󰁼/󰂇/;
        s/󰁻/󰂆/;
        s/󰁺/󰢜/;
        s/󰂎/󰢟/;
        ')"
fi

echo "$icon"