host info updates
[distro-setup] / primary-setup
index 01ddd536f7ea7f424fbfbbe2839d3f91f710f30b..5f415c9267db7e2fd7dbe3b7b1f596303e1e2c78 100755 (executable)
@@ -1,35 +1,54 @@
 #!/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]}" "$@"
 
 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
@@ -40,18 +59,41 @@ if [[ -e /dev/shm/iank-status ]]; then
 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