#!/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
script_name="${BASH_SOURCE[0]}"
script_name="${script_name##*/}"
-pre="${SSH_CLIENT:+$HOSTNAME} $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]}" "$@"
if [[ $1 ]]; then
new_host=$1
if [[ $new_host == localhost ]]; then
- mailhost_p=1
new_host=$HOSTNAME
- 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
-
m sed -ri "s/MAIL_HOST=.*/MAIL_HOST=$new_host/" /a/bin/bash_unpublished/source-state
fi
source /a/bin/bash_unpublished/source-state
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
- m systemctl --now disable btrbk.timer
+ serm systemctl --now disable btrbk.timer
fi
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