From c4ae7e5b74b94a7f57fe36031642ae4960163205 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sun, 21 May 2023 22:25:24 +0200 Subject: Make more sysinfo work on FreeBSD It appears FreeBSD does support a procfs, but it doesn't come with much useful information for actually giving me the information I desire. --- lib/subcommands/sysinfo.bash | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/lib/subcommands/sysinfo.bash b/lib/subcommands/sysinfo.bash index 9fcb604..2f44844 100644 --- a/lib/subcommands/sysinfo.bash +++ b/lib/subcommands/sysinfo.bash @@ -16,27 +16,40 @@ subcommand() { local storage_used local uptime - load_1="$(awk '{ print $1 }' < /proc/loadavg)" - load_5="$(awk '{ print $2 }' < /proc/loadavg)" - load_15="$(awk '{ print $3 }' < /proc/loadavg)" - memory_total="$(awk '/MemTotal/ { print $2 }' < /proc/meminfo)" - memory_free="$(awk '/MemAvailable/ { print $2 }' < /proc/meminfo)" - memory_used=$(( memory_total - memory_free )) - uptime="$(awk -F. '{ print $1 }' < /proc/uptime)" - case "${BASHTARD_PLATFORM[os]}" in freebsd) + load_1="$(uptime | awk -F' *,? *' '{ print $(NF-2) }')" + load_5="$(uptime | awk -F' *,? *' '{ print $(NF-1) }')" + load_15="$(uptime | awk -F' *,? *' '{ print $NF }')" storage_used="$(df -c | tail -n1 | awk '{ print $3 }')" storage_free="$(df -c | tail -n1 | awk '{ print $4 }')" storage_total=$(( storage_used + storage_free )) ;; *) + load_1="$(awk '{ print $1 }' < /proc/loadavg)" + load_5="$(awk '{ print $2 }' < /proc/loadavg)" + load_15="$(awk '{ print $3 }' < /proc/loadavg)" + memory_total="$(awk '/MemTotal/ { print $2 }' < /proc/meminfo)" + memory_free="$(awk '/MemAvailable/ { print $2 }' < /proc/meminfo)" + memory_used=$(( memory_total - memory_free )) storage_used="$(df --total | tail -n1 | awk '{ print $3 }')" storage_free="$(df --total | tail -n1 | awk '{ print $4 }')" storage_total=$(( storage_used + storage_free )) + uptime="$(awk -F. '{ print $1 }' < /proc/uptime)" ;; esac + [[ -z "$load_1" ]] && load_1=0 + [[ -z "$load_5" ]] && load_1=0 + [[ -z "$load_15" ]] && load_1=0 + [[ -z "$memory_free" ]] && load_1=0 + [[ -z "$memory_total" ]] && load_1=0 + [[ -z "$memory_used" ]] && load_1=0 + [[ -z "$storage_free" ]] && load_1=0 + [[ -z "$storage_total" ]] && load_1=0 + [[ -z "$storage_used" ]] && load_1=0 + [[ -z "$uptime" ]] && load_1=0 + printf "%-15s %s\n" "etcdir" "$BASHTARD_ETCDIR" printf "%-15s %s\n" "libdir" "$BASHTARD_LIBDIR" printf "%-15s %s\n" "sharedir" "$BASHTARD_SHAREDIR" -- cgit v1.1