62 lines
1.4 KiB
Bash
Executable File
62 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
DIR="/sys/class/power_supply"
|
|
|
|
if [[ "$BLOCK_INSTANCE" == "" ]]; then
|
|
for BAT in $DIR/BAT*/; do
|
|
[[ -f "${BAT}uevent" ]] && BATS+="$BAT/uevent "
|
|
done
|
|
else
|
|
[[ -f "$DIR/BAT$BLOCK_INSTANCE/uevent" ]] && BATS="$DIR/BAT$BLOCK_INSTANCE/uevent"
|
|
fi
|
|
|
|
if [[ "$BATS" == "" ]]; then
|
|
echo " no battery "
|
|
echo "n/a"
|
|
exit 33
|
|
fi
|
|
|
|
cat $BATS | gawk -F '=' '
|
|
BEGIN {
|
|
efull = 0
|
|
enow = 0
|
|
status = ""
|
|
}
|
|
/POWER_SUPPLY_STATUS=/ {
|
|
if (status == "") {
|
|
status = $2
|
|
if (status == "Discharging") {
|
|
status = ""
|
|
} else if (status == "Charging") {
|
|
status = "⚡"
|
|
} else {
|
|
status = ""
|
|
}
|
|
}
|
|
}
|
|
/POWER_SUPPLY_ENERGY_FULL=/ {
|
|
efull += $2
|
|
}
|
|
/POWER_SUPPLY_ENERGY_NOW=/ {
|
|
enow += $2
|
|
}
|
|
END {
|
|
charge = enow / efull * 100
|
|
printf("%s%d%\n", status, charge)
|
|
printf("%s%d\n", status, charge)
|
|
if (charge > 25) {
|
|
print("#04B431\n")
|
|
} else if (charge > 20) {
|
|
print("#A8FF00\n")
|
|
} else if (charge > 15) {
|
|
print("#FFF600\n")
|
|
} else if (charge > 10) {
|
|
print("#FFAE00\n")
|
|
} else if (charge > 5) {
|
|
print("#FF0000\n")
|
|
} else {
|
|
exit 33
|
|
}
|
|
}
|
|
'
|