#!/bin/sh -e
__bat() {
local perc=0
local pmark="%"
local status="x" # "x" = 死亡, "-" = 放電, "+" = 充電, "=" = 満足
local isadapter=0
local isbattery=0
case "$(uname)" in
Linux)
;;
OpenBSD)
perc=$(apm -l)
isadapter=$(apm -a)
isbattery=$(apm -b)
if [ $(($isadapter)) = 1 ] && [ $(($perc)) -gt 98 ]; then
status="="
elif [ $(($isadapter)) = 1 ] && [ $(($perc)) -lt 98 ]; then
status="+"
elif [ $(($isbattery)) = 1 ]; then
status="-"
fi
;;
NetBSD)
for i in $(seq 0 1); do
if envstat -d acpibat$i | grep -q 'present:[[:space:]]*TRUE'; then
batterynum=$i
break
fi
done
perc=$(envstat -d acpibat$batterynum | awk '/charge:/ {gsub(/[\(%\)]/, "", $6); printf "%d\n", $6}')
isadapter=$(envstat -d acpibat$batterynum | awk '/charging:/ {print $2}')
if [ "$isadapter" = "TRUE" ] && [ "$perc" -gt 98 ]; then
status="="
elif [ "$isadapter" = "TRUE" ] && [ "$perc" -lt 98 ]; then
status="+"
elif [ "$isadapter" = "FALSE" ]; then
status="-"
fi
;;
FreeBSD)
perc=$(apm -l)
isadapter=$(apm -a)
if [ "$isadapter" = 1 ] && [ "$perc" -gt 98 ]; then
status="="
elif [ "$isadapter" = 1 ] && [ "$perc" -lt 98 ]; then
status="+"
elif [ "$isadapter" = 0 ]; then
status="-"
fi
;;
Darwin)
perc=$(pmset -g batt | tail -1 | awk '{print $3}' | sed 's/%;//')
isadapter=$(pmset -g batt | head -1 | awk '{print $4}' | sed "s/'//")
if [ "$isadapter" = "AC" ] && [ "$perc" -gt 98 ]; then
status="="
elif [ "$isadapter" = "AC" ] && [ "$perc" -lt 98 ]; then
status="+"
elif [ "$isadapter" = "Battery" ]; then
status="-"
fi
;;
esac
color b g W; printf "%s %d%s" "$status" "$perc" "$pmark"; color --
}