X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=switch-mail-host;h=14a11f866ab3b03ea0d51eedf833e7782a38d848;hb=165008e5b82c81ebff1061c8f8294c3bc6e9dced;hp=8f0912f7246e1e9fd62af985c8365215f999bda1;hpb=2df710615e0dd7243d8a05a8a58a9f8ec810433f;p=distro-setup diff --git a/switch-mail-host b/switch-mail-host old mode 100755 new mode 100644 index 8f0912f..14a11f8 --- a/switch-mail-host +++ b/switch-mail-host @@ -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