From 10b20223895f1b1bd154c96d96e55ad77291147b Mon Sep 17 00:00:00 2001 From: David Runge Date: Mon, 23 Apr 2018 08:38:57 +0200 Subject: bin/get_battery_status: Making the script cross-platform (macOS is now also supported). --- bin/get_battery_status | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) (limited to 'bin') diff --git a/bin/get_battery_status b/bin/get_battery_status index 57af321..3597acb 100755 --- a/bin/get_battery_status +++ b/bin/get_battery_status @@ -3,25 +3,39 @@ set -euo pipefail IFS=$'\n\t' acpi_output="" +pmset_output="" battery_number=0 battery_percentage=0 battery_remaining="" -if [ -x /usr/bin/acpi ]; then - acpi_output=$(/usr/bin/acpi -b) - battery_number=$(echo $acpi_output|cut -d':' -f1|cut -d' ' -f2) - battery_state=$(echo $acpi_output|cut -d' ' -f3) - battery_state=${battery_state%","} - battery_percentage=$(echo $acpi_output|cut -d' ' -f4) - battery_percentage=${battery_percentage%","} +if [ $(uname) == "Darwin" ]; then + pmset_output="$(pmset -g batt| tail -n1)" + battery_percentage="$(echo $pmset_output| cut -d';' -f1| cut -d' ' -f4)" battery_percentage=${battery_percentage%"%"} - if [ $battery_number -ge 0 ]; then - if [ $battery_state = "Discharging" ]; then - battery_remaining=$(echo $acpi_output|cut -d' ' -f5) - echo "$battery_percentage% ($battery_remaining)" - else - echo "$battery_percentage%" + if [[ "$pmset_output" == *"discharging"* ]]; then + battery_remaining="$(echo $pmset_output| cut -d';' -f3| cut -d' ' -f2)" + echo "$battery_percentage% ($battery_remaining)" + else + echo "$battery_percentage%" + fi +else + if [ -x /usr/bin/acpi ]; then + acpi_output=$(/usr/bin/acpi -b) + battery_number=$(echo $acpi_output|cut -d':' -f1|cut -d' ' -f2) + battery_state=$(echo $acpi_output|cut -d' ' -f3) + battery_state=${battery_state%","} + battery_percentage=$(echo $acpi_output|cut -d' ' -f4) + battery_percentage=${battery_percentage%","} + battery_percentage=${battery_percentage%"%"} + if [ $battery_number -ge 0 ]; then + if [ $battery_state = "Discharging" ]; then + battery_remaining=$(echo $acpi_output|cut -d' ' -f5) + echo "$battery_percentage% ($battery_remaining)" + else + echo "$battery_percentage%" + fi fi fi fi + exit 0 -- cgit v1.2.3-54-g00ecf