#!/bin/bash

# Returns the battery time remaining (to empty or full) in a compact format.

battery_info=$(upower -i $(upower -e | grep BAT))

echo "$battery_info" | awk '/time to (empty|full)/ {
    value = $4
    unit = $5
    if (unit == "minutes") {
        hours = int(value / 60)
        minutes = int(value % 60)
    } else {
        hours = int(value)
        minutes = int((value - hours) * 60)
    }
    if (hours > 0 && minutes > 0) {
        printf "%dh %dm", hours, minutes
    } else if (hours > 0) {
        printf "%dh", hours
    } else {
        printf "%dm", minutes
    }
    exit
}'
