#!/usr/bin/env bash

cache_dir=~/.cache/tmux
cache_file=$cache_dir/system-info

# Make sure the output directory exists.
if [ ! -d $cache_dir ]; then
  mkdir -p $cache_dir
fi

# Cleanup cache file when interrupted.
trap '[ -f $cache_file ] && rm $cache_file; exit' INT
trap '[ -f $cache_file ] && rm $cache_file; exit' TERM

while true; do
  # Parse the current CPU load on all cores/threads.
  cpu_load=`mpstat -P ALL -n 1 -u 1 -o JSON | \
    jq '.sysstat.hosts[0].statistics[0]["cpu-load"][1:]|.[].idle' | \
    awk '$idle ~ /[-.0-9]*/ { printf "%s", substr("█▇▆▅▄▃▂▁ ", int($idle / 11), 1) }'`
  # Parse the current CPU package temperature.
  cpu_temp=`sensors coretemp-isa-0000 | awk 'NR == 3 { print substr($4, 2) }'`
  # Write to the cache file.
  echo "$cpu_temp $cpu_load" > $cache_file
done