X-Git-Url: https://iankelling.org/git/?p=distro-setup;a=blobdiff_plain;f=btrbk-run;h=10bd6382c65df24a4ec1efe35a45270e70ad9005;hp=7dad03a5c270284b455397c1c76726d2786ce3ed;hb=79b274fcd8bfa556133ab13270e84b40aebe8468;hpb=1059b8ac11f567b9a8eec1e34a7ab6e791721dca diff --git a/btrbk-run b/btrbk-run index 7dad03a..10bd638 100644 --- a/btrbk-run +++ b/btrbk-run @@ -17,7 +17,7 @@ # todo: if we cancel in the middle of a btrfs send, then run again immediately, the received subvolume doesn't get a Received UUID: field, and we won't mount it. Need to figure out a solution that will fix this. -[[ $EUID == 0 ]] || exec sudo -E "$BASH_SOURCE" "$@" +[[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@" source /usr/local/lib/err @@ -44,7 +44,7 @@ rsync-dirs() { pre="${0##*/}: " m() { if $verbose; then printf "$pre%s\n" "$*"; fi; "$@"; } -e() { printf "$pre%s\n" "$*"; "$@"; } +e() { printf "$pre%s\n" "$*"; } die() { printf "$pre%s\n" "$*" >&2; exit 1; } # latest $MAIL_HOST @@ -125,7 +125,7 @@ if [[ -v targets && $source ]]; then fi if $verbose; then - e "options: conf_only=%s\ndry_run=%s\nrate_limit=%s\nverbose=%s\ncmd_arg=%s" "$conf_only" "$dry_run" "$rate_limit" "$verbose" "$cmd_arg" + printf "options: conf_only=%s\ndry_run=%s\nrate_limit=%s\nverbose=%s\ncmd_arg=%s" "$conf_only" "$dry_run" "$rate_limit" "$verbose" "$cmd_arg" fi ### end options parsing @@ -138,9 +138,21 @@ if [[ ! -v targets && ! $source ]]; then echo "MAIL_HOST=$MAIL_HOST, nothing to do" exit 0 fi + + at_work=false + case $HOSTNAME in - kw|x2) - if ping -q -c1 -w1 iank.vpn.office.fsf.org &>/dev/null; then + kw) + at_work=true + ;;& + x2|x3) + if ping -q -c1 -w1 hal.office.fsf.org \ + && ip n show 192.168.0.26 | grep . &>/dev/null; then + at_work=true + fi + ;;& + kw|x2|x3) + if $at_work && ping -q -c1 -w1 iank.vpn.office.fsf.org &>/dev/null; then home=iank.vpn.office.fsf.org else home=b8.nz @@ -149,7 +161,7 @@ if [[ ! -v targets && ! $source ]]; then kw) targets=($home x2) ;; - x2) + x2|x3) targets=($home kw) ;; tp)