#!/bin/bash
+# I, Ian Kelling, follow the GNU license recommendations at
+# https://www.gnu.org/licenses/license-recommendations.en.html. They
+# recommend that small programs, < 300 lines, be licensed under the
+# Apache License 2.0. This file contains or is part of one or more small
+# programs. If a small program grows beyond 300 lines, I plan to switch
+# its license to GPL.
+
+# Copyright 2024 Ian Kelling
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
# usage $0 [MAIL_HOST]
# setup things which involve being the primary host or not
-source /usr/local/lib/err
+set -e; . /usr/local/lib/bash-bear; set +e
-pre="${0##*/}:"
+script_name="${BASH_SOURCE[0]}"
+script_name="${script_name##*/}"
+pre="$script_name:${0##*/}:${SSH_CLIENT:+ $HOSTNAME:}"
m() { printf "$pre %s\n" "$*"; "$@"; }
e() { printf "$pre %s\n" "$*"; }
err() { echo "[$(date +'%Y-%m-%d %H:%M:%S%z')]: $0: $*" >&2; }
-
+# service maybe
+serm() {
+ local service
+ service="${*: -1}"
+ if [[ ! -s /etc/systemd/system/$service ]]; then
+ return 0
+ fi
+ m "$@"
+}
[[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@"
fi
source /a/bin/bash_unpublished/source-state
+# fixing up a bad state that servers got in.
+if [[ -e /dev/shm/iank-status ]]; then
+ chown iank.iank /dev/shm/iank-status
+fi
+
+
+if [[ $HOSTNAME == "$MAIL_HOST" ]]; then
+ mailhost_p=1
+else
+ mailhost_p=0
+fi
+# https://www.robustperception.io/how-to-have-labels-for-machine-roles
+dir=/var/lib/prometheus/node-exporter
+if [[ -e $dir ]]; then
+ cat > $dir/mailhost.prom <<EOF
+host_role{role="mailhost"} $mailhost_p
+EOF
+fi
+
+
+
+if [[ $HOSTNAME == "$MAIL_HOST" || $HOSTNAME == kd ]]; then
+ m systemctl --now enable btrbk.timer
+else
+ serm systemctl --now disable btrbk.timer
+fi
+
if dpkg -s rss2email &>/dev/null; then
if [[ $HOSTNAME == "$MAIL_HOST" ]]; then
# arbtt disabled for now
#DISPLAY=:0 arbtt-capture --sample-rate=10 &
m systemctl --now enable rss2email.timer
- # off is in mail-setup. no reason for this to be in the rss2email block.
- m systemctl --now enable btrbk.timer
else
- m systemctl --now disable btrbk.timer
+ files=(/sysd-mail-once/btrbk*)
+ if (( ${#files[@]} )); then
+ rm -f ${files[@]}
+ fi
- m systemctl stop rss2email.service
- m systemctl --now disable rss2email.timer
+ serm systemctl stop rss2email.service
+ serm systemctl --now disable rss2email.timer
# arbtt disabled for now
# for ((i=0; i<10; i++)); do
# killall arbtt-capture || break