various fixes and improvements
[distro-setup] / switch-mail-host
old mode 100755 (executable)
new mode 100644 (file)
index 8f0912f..14a11f8
@@ -34,11 +34,12 @@ errcatch-cleanup() {
     e $old_shell sudo systemctl start btrbk.timer
   fi
 }
-b
+
 pre="${0##*/}:"
 m() { printf "$pre %s\n"  "$*"; "$@"; }
 e() { printf "$pre %s\n"  "$*"; }
 err() { echo "[$(date +'%Y-%m-%d %H:%M:%S%z')]: $pre: $*" >&2; }
+mexit() { echo "exiting with status $1"; exit $1; }
 
 ##### begin command line parsing ########
 
@@ -50,7 +51,7 @@ while true; do
     -o) mp_args="-m /o"; shift ;;
     -h|--help) usage ;;
     --) shift; break ;;
-    *) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;;
+    *) echo "$0: Internal error! unexpected args: $*" ; mexit 1 ;;
   esac
 done
 
@@ -74,7 +75,7 @@ case $1 in
     ;;
   *)
     err invalid first argument
-    exit 1
+    mexit 1
     ;;
 esac
 
@@ -82,15 +83,13 @@ esac
 source /a/bin/bash_unpublished/source-state
 
 if [[ $old_host != "$MAIL_HOST" ]]; then
-  read -r -p "warning: \$old_host != \$MAIL_HOST: $old_host != $MAIL_HOST, proceed? y/N "
-  if [[ $REPLY != [yY] ]]; then
-    exit 1
-  fi
+  e "WARNING: \$old_host != \$MAIL_HOST. Sleeping for 5 seconds in case you want to reconsider"
+  sleep 5
 fi
 
 if [[ ! $new_host || ! $old_host ]]; then
   echo "$0: bad args. see script"
-  exit 1
+  mexit 1
 fi
 
 e $new_shell hostname
@@ -148,21 +147,24 @@ EOF
 # ipv6 i think.
 
 
+e Running initial btrbk
 if ! m btrbk-run -v $bbk_args $mp_args; then
   ret=$?
   err "failed initial btrbk"
-  exit $ret
+  mexit $ret
 fi
 
-
 m $old_shell /a/exe/primary-setup $new_hostname
 
+e Running main btrbk
 if ! m btrbk-run -v $bbk_args -m /o; then
   ret=$?
   bang="$(printf "$(tput setaf 5)█$(tput sgr0)%.0s" 1 2 3 4 5 6 7)"
   e $bang failed btrbk of /o. restoring old host as primary
   m $old_shell /a/exe/primary-setup localhost
-  exit $ret
+  mexit $ret
 fi
 
 m $new_shell /a/exe/primary-setup localhost
+
+mexit 0