diff options
Diffstat (limited to '')
-rwxr-xr-x | .i3-blocks/blocks/temperature | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/.i3-blocks/blocks/temperature b/.i3-blocks/blocks/temperature new file mode 100755 index 0000000..0c4b858 --- /dev/null +++ b/.i3-blocks/blocks/temperature @@ -0,0 +1,35 @@ +#!/bin/bash + +TEMP_DEVICE="${BLOCK_INSTANCE:-Core}" +TEMP_OUTPUT=$(sensors | grep "${TEMP_DEVICE}") + +IS_URGENT=0 + +TOTAL_TEMP=0 +TOTAL_COUNT=0 +while read RESULT_LINE; do + TOTAL_COUNT=$((TOTAL_COUNT +1)) + CURRENT_TEMP=$(echo "${RESULT_LINE}" | grep -o -E "[\+\-]?[0-9]*.[0-9]*°C" | sed -n '1p' | tr -d '+°C') + URGENT_VALUE=$(echo "${RESULT_LINE}" | grep -o -E "[\+\-]?[0-9]*.[0-9]*°C" | sed -n '2p' | tr -d '+°C') + + TOTAL_TEMP=$(echo "scale=2;${TOTAL_TEMP}+${CURRENT_TEMP}" | bc -l) + IS_CRITICAL=$(echo "scale=0;${CURRENT_TEMP}-${URGENT_VALUE} >= 0" | bc -l) + + if [[ "${IS_CRITICAL}" -eq 1 ]]; then + IS_URGENT=1 + fi +done <<< "$(echo -e "$TEMP_OUTPUT")" + +AVERAGE_TEMP=$(echo "scale=0;${TOTAL_TEMP}/${TOTAL_COUNT}" | bc -l) + +if [[ "${TOTAL_COUNT}" -gt 1 ]]; then + AVERAGE_TEMP="~ ${AVERAGE_TEMP}" +fi + +echo "${AVERAGE_TEMP}°C" +echo "${AVERAGE_TEMP}°C" +echo "" + +if [[ "${IS_URGENT}" -eq 1 ]]; then + exit 33 +fi
\ No newline at end of file |