#!/bin/bash
-# Copyright (C) 2019 Ian Kelling
-# SPDX-License-Identifier: AGPL-3.0-or-later
+
+# Basic system status on on Ian's computers
+# Copyright (C) 2024 Ian Kelling
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# SPDX-License-Identifier: GPL-3.0-or-later
# usage: runs once every 15 seconds unless any args are passed, or we
# then just runs once and have verbose output. On battery power, run
if grep -qxF $HOSTNAME $x; then all_dirs+=( ${x%.hosts} ); fi
done
+ script_files=("${my_service_scripts[@]}" "${my_bin_files[@]}" $my_lib_files)
+
# Just because i forget a lot, -mmin -NUM means files modified <= NUM minutes ago
- if (( fmin < 0 )) && [[ $(find ${all_my_scripts[@]} ${all_dirs[@]} -mmin $fmin -type f -print -quit 2>/dev/null) ]]; then
+ if (( fmin < 0 )) && [[ $(find "${script_files[@]}" ${all_dirs[@]} -mmin $fmin -type f -print -quit 2>/dev/null) ]]; then
v conflink newer filesystem files
chars+=(CONFLINK)
break
fi
mprom=/var/lib/prometheus/node-exporter/mailtest-check.prom
- if grep -qE 'mailtest_check_(unexpected|missing).*[^ ][^0]$' $mprom; then
- chars+=("MTEST_SPAM")
- fi
- mtest_found=false
- for t in $(grep -E ^mailtest_check_last_usec $mprom | awk '{print $NF}'); do
- if (( t + 60 * 20 < EPOCHSECONDS )); then
- mtest_found=true
+ if [[ -s $mprom ]]; then
+ if grep -qE 'mailtest_check_(unexpected|missing).*[^ ][^0]$' $mprom; then
+ chars+=("MTEST_SPAM")
+ fi
+ mtest_found=false
+ # shellcheck disable=SC2013 # these are words
+ for t in $(grep -E ^mailtest_check_last_usec $mprom | awk '{print $NF}'); do
+ if (( t + 60 * 20 < EPOCHSECONDS )); then
+ mtest_found=true
+ fi
+ done
+ if $mtest_found; then
+ chars+=("MTEST_AGE")
fi
- done
- if $mtest_found; then
- chars+=("MTEST_AGE")
fi
if [[ ! -e $status_file || -w $status_file ]]; then
local locked
export DISPLAY=:0
locked=false
- if lock_info=$(xscreensaver-command -time); then
+ if lock_info=$(xscreensaver-command -time 2>/dev/null); then
if [[ $lock_info != *non-blanked* ]]; then
locked=true
fi
- else
- locked=true
- fi
- midnight=$(date -d 00:00 +%s)
- mdiff=$(( EPOCHSECONDS - midnight ))
- if $locked && (( mdiff < 6 *60*60 || mdiff > 21 *60*60 )); then
- case $(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') in
- no)
- # for log purposes
- echo muted
- pactl set-sink-mute @DEFAULT_SINK@ true
- ;;
- esac
- fi
- if ! $locked && (( mdiff > 6 *60*60 || mdiff < 12 *60*60 )) && [[ ! -e /tmp/ianknap ]]; then
- case $(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') in
- yes)
- # for log purposes
- echo unmuted
- pactl set-sink-mute @DEFAULT_SINK@ false
- ;;
- esac
+ midnight=$(date -d 00:00 +%s)
+ mdiff=$(( EPOCHSECONDS - midnight ))
+ if $locked && (( mdiff < 6 *60*60 || mdiff > 21 *60*60 )); then
+ case $(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') in
+ no)
+ # for log purposes
+ echo muted
+ pactl set-sink-mute @DEFAULT_SINK@ true
+ ;;
+ esac
+ fi
+ if ! $locked && (( mdiff > 6 *60*60 || mdiff < 12 *60*60 )) && [[ ! -e /tmp/ianknap ]]; then
+ case $(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') in
+ yes)
+ # for log purposes
+ echo unmuted
+ pactl set-sink-mute @DEFAULT_SINK@ false
+ ;;
+ esac
+ fi
fi
}