From c3d216c0f03ea6bcb8c2503a4b17d33d42d5860e Mon Sep 17 00:00:00 2001 From: Abhishek Keshri Date: Tue, 9 Aug 2022 06:28:35 +0530 Subject: [PATCH] Add cpu_info.sh --- scripts/cpu_info.sh | 58 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100755 scripts/cpu_info.sh diff --git a/scripts/cpu_info.sh b/scripts/cpu_info.sh new file mode 100755 index 0000000..6fbeb5b --- /dev/null +++ b/scripts/cpu_info.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +# setting the locale, some users have issues with different locales, this forces the correct one +export LC_ALL=en_US.UTF-8 + +current_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source $current_dir/utils.sh + +get_percent() +{ + case $(uname -s) in + Linux) + percent=$(LC_NUMERIC=en_US.UTF-8 top -bn2 -d 0.01 | grep "Cpu(s)" | tail -1 | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}') + normalize_percent_len $percent + ;; + + Darwin) + cpuvalue=$(ps -A -o %cpu | awk -F. '{s+=$1} END {print s}') + cpucores=$(sysctl -n hw.logicalcpu) + cpuusage=$(( cpuvalue / cpucores )) + percent="$cpuusage%" + normalize_percent_len $percent + ;; + + CYGWIN*|MINGW32*|MSYS*|MINGW*) + # TODO - windows compatability + ;; + esac +} + +get_load() { + case $(uname -s) in + Linux | Darwin) + loadavg=$(uptime | awk -F'[a-z]:' '{ print $2}' | sed 's/,//g') + echo $loadavg + ;; + + CYGWIN* | MINGW32* | MSYS* | MINGW*) + # TODO - windows compatability + ;; + esac +} + +main() { + # storing the refresh rate in the variable RATE, default is 5 + RATE=$(get_tmux_option "@tmux2k-refresh-rate" 5) + cpu_load=$(get_tmux_option "@tmux2k-cpu-display-load" false) + if [ "$cpu_load" = true ]; then + echo "$(get_load)" + else + cpu_label=$(get_tmux_option "@tmux2k-cpu-usage-label" "") + cpu_percent=$(get_percent) + echo "$cpu_label $cpu_percent" + fi + sleep $RATE +} + +# run main driver +main