UNPKG

2.26 kBapplication/x-shView Raw
1#!/bin/bash
2
3function battery_charge() {
4 local battery_path="/sys/class/power_supply/BAT1/"
5 local curcap
6 local maxcap
7 BATT_PCT=99
8 case $(uname -s) in
9 "Darwin")
10 if ((pmset_on)) && command -v pmset &>/dev/null; then
11 if [ "$(pmset -g batt | grep -o 'AC Power')" ]; then
12 BATT_CONNECTED=1
13 else
14 BATT_CONNECTED=0
15 fi
16 BATT_PCT=$(pmset -g batt | grep -o '[0-9]*%' | tr -d %)
17 else
18 while read key value; do
19 case $key in
20 "MaxCapacity")
21 maxcap=$value
22 ;;
23 "CurrentCapacity")
24 curcap=$value
25 ;;
26 "ExternalConnected")
27 if [ $value == "No" ]; then
28 BATT_CONNECTED=0
29 else
30 BATT_CONNECTED=1
31 fi
32 ;;
33 esac
34 if [[ -n "$maxcap" && -n $curcap ]]; then
35 BATT_PCT=$[100 * $curcap / $maxcap]
36 fi
37 done < <(ioreg -n AppleSmartBattery -r | grep -o '"[^"]*" = [^ ]*' | sed -e 's/= //g' -e 's/"//g' | sort)
38 fi
39 ;;
40 "Linux")
41 case $(cat /etc/*-release) in
42 *"Arch Linux"*|*"Ubuntu"*|*"openSUSE"*)
43 BATT_PCT=$(cat $battery_path/capacity 2>/dev/null || echo "100")
44 battery_state=$(cat $battery_path/status 2>/dev/null || echo "Charging")
45 ;;
46 *)
47 BATT_PCT=$(cat $battery_path/capacity 2>/dev/null || echo "100")
48 battery_state=$(cat $battery_path/status 2>/dev/null || echo "Charging")
49 ;;
50 esac
51 if [ $battery_state == 'Discharging' ]; then
52 BATT_CONNECTED=0
53 else
54 BATT_CONNECTED=1
55 fi
56 BATTERY_STATE=$battery_state #$(cat $battery_current)
57 ;;
58 esac
59}
60
61battery_charge