lots of fixes, automation for bitfolk
[distro-setup] / conflink
index bfd4e448814e38414c9f0ced5fdedcbfbf7256e4..defb8321d87e1fef55112a6c11e8f28f8e7ff52e 100755 (executable)
--- a/conflink
+++ b/conflink
@@ -81,7 +81,10 @@ common-file-setup() {
   for dir in "$@"; do
     fs=$dir/filesystem
     if [[ -e $fs && $user =~ ^iank?$ ]]; then
-      cmd=( s rsync -aiSAX --chown=root:root --chmod=g-s
+      # we dont want t, instead c for checksum.
+      # That way we dont set times on directories.
+      # -a = -rlptgoD
+      cmd=( s rsync -rclpgoDiSAX --chown=root:root --chmod=g-s
             --exclude=/etc/dovecot/users
             --exclude='/etc/exim4/passwd*'
             --exclude='/etc/exim4/*.pem'
@@ -90,6 +93,15 @@ common-file-setup() {
       while read -r line; do
         file="${line:12}"
         case $file in
+          etc/prometheus/rules/iank.yml)
+            case $HOSTNAME in
+              kd)
+                if systemctl is-active prometheus &>/dev/null; then
+                  m s systemctl reload prometheus
+                fi
+                ;;
+            esac
+            ;;
           etc/systemd/system/*)
             reload_systemd=true
             ;;
@@ -110,7 +122,7 @@ common-file-setup() {
       done < <("${cmd[@]}")
     fi
 
-    if [[ -e $dir/subdir_files ]]; then
+    if ! $fast && [[ -e $dir/subdir_files ]]; then
       m subdir-link-r $dir/subdir_files
     fi
     local x=( $dir/!(binds|subdir_files|filesystem|machine_specific|..|.|.#*) )
@@ -135,6 +147,17 @@ for x in /p/c/machine_specific/*.hosts /a/bin/ds/machine_specific/*.hosts; do
   if grep -qxF $HOSTNAME $x; then all_dirs+=( ${x%.hosts} ); fi
 done
 
+# old files 2022-03
+for t in systemstatus epanicclean btrfsmaintstop dynamicipupdate; do
+  f=/etc/systemd/system/$t.timer
+  if [[ -e $f ]]; then
+    s systemctl stop $t.timer
+    s systemctl disable $t.timer
+    s rm -fv $f
+    reload_systemd=true
+  fi
+done
+
 c_dirs=(/a/c{,/machine_specific/$HOSTNAME})
 case $user in
   iank)
@@ -169,7 +192,7 @@ case $user in
     for f in /etc/prometheus-{,export-}htpasswd; do
       if [[ -e $f ]]; then
         s chmod 640 $f
-        if getent passwd www-data; then
+        if getent passwd www-data &>/dev/null; then
           s chown root:www-data $f
         fi
       fi
@@ -178,15 +201,15 @@ case $user in
     if [[ -e $f ]]; then
       # note: this is duplicative of the file's own permissions
       s chmod 640 $f /etc/prometheus-pass
-      if getent passwd prometheus; then
+      if getent passwd prometheus &>/dev/null; then
         s chown root:prometheus $f
       fi
     fi
-
-
     ##### end special extra stuff #####
 
-    m sudo -H -u user2 "${BASH_SOURCE[0]}"
+    if ! $fast; then
+      m sudo -H -u user2 "${BASH_SOURCE[0]}"
+    fi
 
     f=/a/bin/distro-setup/system-status
     if [[ -x $f ]]; then