set -euo pipefail
render() {
rat style --bold --foreground accent 'System dashboard'
rat style --faint "$(date)"
echo
df -Pk / 2>/dev/null | awk 'NR == 2 {
printf "disk /\t%d\t%d\n", ($3 / 1024 / 1024), (($3 + $4) / 1024 / 1024)
}' | rat bar --width 24 --thresholds '70:ok,90:warn,100:error' --annotation percent
step=$(( $(date +%s) % 120 ))
rat bar --label 'deploy (simulated)' --value "$step" --total 120 \
--width 24 --state "$(rat duration $((120 - step)))"' left'
printf 'load '
uptime | sed 's/.*load average[s]*: //' | tr -d ',' | rat spark --min 0
echo
tasks=$(printf 'build\t8/10\tgreen\ntest\t2/10\twaiting\n' |
rat table --align l,r,l |
rat style --border rounded --title tasks --padding '0 1')
facts=$(printf 'host\t%s\nshell\tzsh\n' "$(hostname -s)" |
rat table |
rat style --border rounded --title facts --padding '0 1')
rat join --gap 2 "$tasks" "$facts"
echo
rat log --level info "frame rendered $(rat date --relative "$(date +%s)")"
}
case "${1:-}" in
--render|--once) render ;;
*) exec rat watch --clear --interval 2s -- "$0" --render ;;
esac