summaryrefslogtreecommitdiff
path: root/statuspage/checks
diff options
context:
space:
mode:
authorbatsumaru <>2026-07-01 17:08:29 +0900
committerbatsumaru <>2026-07-01 17:08:29 +0900
commit45f7fb33d96350798bfcc16877be152e2fa308bf (patch)
tree4fb32c83686fcdb7a4c20c3daa4fbd4c6fe3f657 /statuspage/checks
parentf0c6add973af795f3ed9b069bcdba16fb7f1f66b (diff)
Fix uptime to include hours/minutes, add a purple/gold theme
hw.sh's uptime was parsed from `uptime`'s text output, which cut off at the first comma - dropping the H:MM part entirely. It also never actually rolled over to months/years for long uptimes (FreeBSD's uptime just keeps growing the day count). Replaced with a direct `sysctl kern.boottime` computation for a fully deterministic "Nd Hh Mm" format. Caught a real bug along the way: the first attempt at the sed extraction grabbed `usec` instead of `sec`, since "usec" contains "sec" as a substring and the pattern wasn't anchored tightly enough. render.sh's palette now uses purple/lavender for headings and borders and a gold accent (title underline, value-column text), taking cues from reference character art. The green/yellow/red/gray status squares are untouched - they carry semantic meaning the color scheme shouldn't interfere with. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diffstat (limited to 'statuspage/checks')
-rwxr-xr-xstatuspage/checks/hw.sh8
1 files changed, 6 insertions, 2 deletions
diff --git a/statuspage/checks/hw.sh b/statuspage/checks/hw.sh
index 259234d..54c4718 100755
--- a/statuspage/checks/hw.sh
+++ b/statuspage/checks/hw.sh
@@ -10,8 +10,12 @@ DIR=$(dirname "$0")
LOAD=$(sysctl -n vm.loadavg | tr -d '{}' | sed 's/^ *//;s/ *$//')
json_line "hardware" "load avg" "$LOAD" "ok"
-UPTIME=$(uptime | sed 's/.*up //;s/,.*load.*//')
-json_line "hardware" "uptime" "$UPTIME" "ok"
+BOOT=$(sysctl -n kern.boottime | sed -n 's/{ sec = \([0-9]*\).*/\1/p')
+SECS=$(($(date +%s) - BOOT))
+UP_D=$((SECS / 86400))
+UP_H=$(((SECS % 86400) / 3600))
+UP_M=$(((SECS % 3600) / 60))
+json_line "hardware" "uptime" "${UP_D}d ${UP_H}h ${UP_M}m" "ok"
MEM_FREE=$(sysctl -n vm.stats.vm.v_free_count)
MEM_PAGE=$(sysctl -n hw.pagesize)