Merge pull request #79 from ethancedwards8/freebsd_support
FreeBSD support - Battery and Ram
This commit is contained in:
commit
461ef98582
2 changed files with 50 additions and 6 deletions
|
@ -45,6 +45,10 @@ battery_percent()
|
||||||
echo $(pmset -g batt | grep -Eo '[0-9]?[0-9]?[0-9]%')
|
echo $(pmset -g batt | grep -Eo '[0-9]?[0-9]?[0-9]%')
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
FreeBSD)
|
||||||
|
echo $(apm | sed '8,11d' | grep life | awk '{print $4}')
|
||||||
|
;;
|
||||||
|
|
||||||
CYGWIN*|MINGW32*|MSYS*|MINGW*)
|
CYGWIN*|MINGW32*|MSYS*|MINGW*)
|
||||||
# leaving empty - TODO - windows compatability
|
# leaving empty - TODO - windows compatability
|
||||||
;;
|
;;
|
||||||
|
@ -59,13 +63,17 @@ battery_status()
|
||||||
# Check OS
|
# Check OS
|
||||||
case $(uname -s) in
|
case $(uname -s) in
|
||||||
Linux)
|
Linux)
|
||||||
status=$(linux_acpi status)
|
status=$(linux_acpi status)
|
||||||
;;
|
;;
|
||||||
|
|
||||||
Darwin)
|
Darwin)
|
||||||
status=$(pmset -g batt | sed -n 2p | cut -d ';' -f 2)
|
status=$(pmset -g batt | sed -n 2p | cut -d ';' -f 2)
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
FreeBSD)
|
||||||
|
status=$(apm | sed '8,11d' | grep Status | awk '{printf $3}')
|
||||||
|
;;
|
||||||
|
|
||||||
CYGWIN*|MINGW32*|MSYS*|MINGW*)
|
CYGWIN*|MINGW32*|MSYS*|MINGW*)
|
||||||
# leaving empty - TODO - windows compatability
|
# leaving empty - TODO - windows compatability
|
||||||
;;
|
;;
|
||||||
|
@ -74,11 +82,28 @@ battery_status()
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ $status = 'discharging' ] || [ $status = 'Discharging' ]; then
|
case $status in
|
||||||
echo ''
|
discharging|Discharging)
|
||||||
else
|
echo ''
|
||||||
echo 'AC'
|
;;
|
||||||
fi
|
high)
|
||||||
|
echo ''
|
||||||
|
;;
|
||||||
|
charging)
|
||||||
|
echo 'AC'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo 'AC'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
### Old if statements didn't work on BSD, they're probably not POSIX compliant, not sure
|
||||||
|
# if [ $status = 'discharging' ] || [ $status = 'Discharging' ]; then
|
||||||
|
# echo ''
|
||||||
|
# # elif [ $status = 'charging' ]; then # This is needed for FreeBSD AC checking support
|
||||||
|
# # echo 'AC'
|
||||||
|
# else
|
||||||
|
# echo 'AC'
|
||||||
|
# fi
|
||||||
}
|
}
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
|
|
@ -47,6 +47,25 @@ get_percent()
|
||||||
echo $memory\G\B/$total_mem
|
echo $memory\G\B/$total_mem
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
FreeBSD)
|
||||||
|
# Looked at the code from neofetch
|
||||||
|
hw_pagesize="$(sysctl -n hw.pagesize)"
|
||||||
|
mem_inactive="$(($(sysctl -n vm.stats.vm.v_inactive_count) * hw_pagesize))"
|
||||||
|
mem_unused="$(($(sysctl -n vm.stats.vm.v_free_count) * hw_pagesize))"
|
||||||
|
mem_cache="$(($(sysctl -n vm.stats.vm.v_cache_count) * hw_pagesize))"
|
||||||
|
|
||||||
|
free_mem=$(((mem_inactive + mem_unused + mem_cache) / 1024 / 1024))
|
||||||
|
total_mem=$(($(sysctl -n hw.physmem) / 1024 / 1024))
|
||||||
|
used_mem=$((total_mem - free_mem))
|
||||||
|
echo $used_mem
|
||||||
|
if (( $used_mem < 1024 )); then
|
||||||
|
echo $used_mem\M\B/$total_mem
|
||||||
|
else
|
||||||
|
memory=$(($used_mem/1024))
|
||||||
|
echo $memory\G\B/$total_mem
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
CYGWIN*|MINGW32*|MSYS*|MINGW*)
|
CYGWIN*|MINGW32*|MSYS*|MINGW*)
|
||||||
# TODO - windows compatability
|
# TODO - windows compatability
|
||||||
|
|
Loading…
Reference in a new issue