#!/bin/bash

readarray -t batteries < <(upower -e | grep 'BAT')

[[ -z $batteries ]] && exit

allstate=""

for battery in "${batteries[@]}"
do
    current=$(("$current" + $(upower -i "$battery" | grep -E "percentage" | sed 's/.*://' | sed 's/ *//' | sed 's/\%//')))
    state=$(upower -i "$battery" | grep -E "state" | sed 's/.*://' | sed 's/ *//')

    allstate=$allstate$state
done

if [[ "$allstate" == *"discharging"* ]]; then
    state="discharging"
elif [[ "$allstate" == *"charging"* ]]; then
    state="charging"
elif [[ "$allstate" == "not-chargingnot-charging" || "$allstate" == "fully-chargedfully-charged" || "$allstate" == "not-charging" || "$allstate" == "fully-charged" ]]; then
    state="full"
else
    state="N/A"
fi

echo "$((current/${#batteries[@]}))% $state"
