From d99ecf10940cd1027a02dc8852c0f3551839c7ff Mon Sep 17 00:00:00 2001 From: dtb Date: Sun, 21 Aug 2022 20:23:31 -0400 Subject: [PATCH] thrust into 2022 --- bin/data | 106 ++++++------------------------------------------------- 1 file changed, 10 insertions(+), 96 deletions(-) diff --git a/bin/data b/bin/data index 08fe086..c64c756 100755 --- a/bin/data +++ b/bin/data @@ -2,11 +2,6 @@ set -e -# depends on https://git.sr.ht/~trinity/utilities (particularly fdivide(1), -# gt(1), and stris(1)) -# there are issues with the POSIX shell implementations included in this script -# and particularly with stris - # on Linux only: # these files (separated by newlines) will have the current CPU temperature # multiplied by $CPU_TEMP_SCALE. this script divides the file contents by scale @@ -16,7 +11,7 @@ CPU_TEMP_FILES="/sys/devices/platform/coretemp.0/hwmon/hwmon4/temp2_input CPU_TEMP_SCALE=1000 # format for the date (by default in this script, ISO 8601) -alias date="date '+%Y-%m-%dT%T'" +DATE="date '+%Y-%m-%dT%T'" DELIMITER=" || " @@ -24,11 +19,6 @@ DELIMITER=" || " # not an integer) INTERVAL=1 -# enable if you have issues with missing `stris` etc. will save negligible time -# with shells that don't spawn new processes for test(1) -# fdivide_posix() may not be fully working yet, so it's not enabled by default -#POSIXLY_CORRECT=1 - # this URL will have in plain text the public IP address from which it was # accessed #PUBLIC_IP_FETCH_URL="http://ifconfig.io/" @@ -37,26 +27,6 @@ INTERVAL=1 PUBLIC_IP_FETCH_URL="https://icanhazip.com" PUBLIC_IP6_FETCH_URL="$PUBLIC_IP_FETCH_URL" -get_battery_status() { - if [ "$(uname)" = "Linux" ]; then - # this is a dirty hack. - # acpi | awk '{print $4}' will print the battery percentage, - # and s/,$// strips the trailing comma. - # acpi -a will just print the power adapter status. - printf "%b" "$(acpi | awk '{print $4}' | sed 's/,$//') ($(acpi -a))" - return - elif [ "$(uname)" = "NetBSD" ]; then - printf "%b%%" "$(envstat -s acpibat0:charge \ - | sed 1,2d \ - | cut -d ':' -f 2 \ - | awk '{print $1}' \ - | cut -d '.' -f 1)" - return - else - printf "get_battery_status: unsupported OS" - fi -} - get_cpu_temp() { if [ "$(uname)" = "Linux" ]; then RETVAL="" @@ -114,14 +84,13 @@ get_public_ip() { return } -# slow, so fetch it in advance PUBLIC_IP="$(get_public_ip)" printbar() { printf "%b" "$(get_current_desktop)" - printf "%b" "$(date)" + printf "%b" $("$DATE") printf "%b" "$DELIMITER" - printf "%b" "BAT: $(get_battery_status)" + printf "%b" "BAT: $(battery)" printf "%b" "$DELIMITER" printf "%b" "CPU: $(get_cpu_temp)" printf "%b" "$DELIMITER" @@ -132,72 +101,13 @@ printbar() { return } -############################################################################### -# the following is for error prevention and doesn't need to be changed # -############################################################################### - -# POSIX shell version of fdivide -fdivide_posix() { - [ -n "$2" ] && [ -n "$1" ] && [ -z "$3" ] \ - || return 1 - printf "%b\n" "$(($1/$2))" - return -} - -# [ -gt ] with better syntax -gt_posix() { - while [ -n "$2" ]; do - [ "$1" -gt "$2" ] \ - || return 1 - shift 1 - done - return 0 -} - -# limited POSIX shell version of stris -# BROKEN REGEX. MUSTFIX. -stris_posix() { - [ -n "$2" ] || return 1 - case "$1" in - (int) - # https://stackoverflow.com/questions/2210349/test-whether-string-is-a-valid-integer - printf "$2" | grep '^-?[0-9]+$' >/dev/null \ - && return 0 \ - || return 1 - ;; - (uint) - printf "$2" | grep '^[0-9]+$' >/dev/null \ - && return 0 \ - || return 1 - ;; - (*) - return 1 - ;; - esac - return -} - -# check to make sure we have non-standard utilities - -[ -n "$POSIXLY_CORRECT" ] || ! which fdivide >/dev/null 2>&1 \ - && alias fdivide="fdivide_posix" \ - || true - -[ -n "$POSIXLY_CORRECT" ] || ! which gt >/dev/null 2>&1 \ - && alias gt="gt_posix" \ - || true - -[ -n "$POSIXLY_CORRECT" ] || ! which stris >/dev/null 2>&1 \ - && alias stris="stris_posix" \ - || true - # check to make sure customizeable vars are in proper format -[ -n "$INTERVAL" ] && stris int "$INTERVAL" \ +[ -n "$INTERVAL" ] && str isdigit "$INTERVAL" \ || INTERVAL=1 -[ -n "$CPU_TEMP_SCALE" ] && stris int "$CPU_TEMP_SCALE" \ - && gt "$CPU_TEMP_SCALE" 0 \ +[ -n "$CPU_TEMP_SCALE" ] && str isdigit "$CPU_TEMP_SCALE" \ + && [ "$CPU_TEMP_SCALE" -gt 0 ] \ || CPU_TEMP_SCALE=1 [ -n "$CPU_TEMP_FILES" ] \ @@ -208,4 +118,8 @@ stris_posix() { while true; do printbar sleep "$INTERVAL" + if streq $(date +'%S') 00; then + # every minute + PUBLIC_IP="$(get_public_ip)" + fi done