aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2023-05-21 22:25:24 +0200
committerPatrick Spek <p.spek@tyil.nl>2023-05-21 22:25:24 +0200
commitc4ae7e5b74b94a7f57fe36031642ae4960163205 (patch)
tree31c307ccb0fdf0ef992df6a6aa3e17c8d504ca91
parent5cd8b678013e810e53e71f12a64067a30efe5300 (diff)
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.
-rw-r--r--lib/subcommands/sysinfo.bash29
1 files 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"