X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=btrbk-run;h=3a2d2a493495fb2fc422f02b9f5f80b52c632b39;hb=7f759d320592e791a62cd0a966350e8c53ee0976;hp=10bd6382c65df24a4ec1efe35a45270e70ad9005;hpb=36f92d5af79d7934e953515f58af1c86d6838599;p=distro-setup diff --git a/btrbk-run b/btrbk-run index 10bd638..3a2d2a4 100644 --- a/btrbk-run +++ b/btrbk-run @@ -45,7 +45,8 @@ rsync-dirs() { pre="${0##*/}: " m() { if $verbose; then printf "$pre%s\n" "$*"; fi; "$@"; } e() { printf "$pre%s\n" "$*"; } -die() { printf "$pre%s\n" "$*" >&2; exit 1; } +die() { printf "$pre%s\n" "$*" >&2; echo "exiting with status 1" >&2; exit 1; } +mexit() { echo "$pre: exiting with status $1"; exit $1; } # latest $MAIL_HOST if [[ -e /b/bash_unpublished/source-state ]]; then @@ -58,6 +59,7 @@ mountpoints=() rsync_mountpoint=/q +ret=0 # default options conf_only=false dry_run=false # mostly for testing @@ -129,6 +131,7 @@ if $verbose; then fi ### end options parsing + # TODO: i wonder if there should be an option to send to the default # targets, plus any given on the command line. @@ -136,7 +139,7 @@ fi if [[ ! -v targets && ! $source ]]; then if [[ $HOSTNAME != "$MAIL_HOST" ]] && $cron ; then echo "MAIL_HOST=$MAIL_HOST, nothing to do" - exit 0 + mexit 0 fi at_work=false @@ -242,7 +245,7 @@ echo "mountpoints: ${mountpoints[*]}" if [[ $source ]]; then if [[ $(ssh $source systemctl is-active btrbk.service) != inactive ]]; then echo "$0: error: cron btrbk is running on source. exiting out of caution" - exit 1 + mexit 1 fi fi @@ -262,7 +265,7 @@ if ! $pull_reexec && [[ $source ]] && $pulla ; then e "found newer version on host $source. reexecing" install -T $tmpf /usr/local/bin/btrbk-run m /usr/local/bin/btrbk-run --pull-reexec "${orig_args[@]}" - exit + mexit 0 fi fi @@ -399,14 +402,14 @@ done if $conf_only; then - exit + mexit 0 fi if $dry_run; then m btrbk -v -n $cmd_arg - exit 0 + mexit 0 elif [[ $cmd_arg == archive ]]; then if [[ $source ]]; then m btrbk $verbose_arg $progress_arg $cmd_arg ssh://$source$vol $vol @@ -415,7 +418,7 @@ elif [[ $cmd_arg == archive ]]; then m btrbk $verbose_arg $progress_arg $cmd_arg $vol ssh://$tg$vol done fi - exit 0 + mexit 0 fi # -q and just using the syslog option seemed nice, # but it doesn't show when a send has a parent and when it doesn't. @@ -443,7 +446,7 @@ else m /a/exe/mount-latest-remote ${targets[@]} fi -exit $ret +mexit $ret # todo: move variable data we don't care about backing up # to /nocow and symlink it.