X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=mount-latest-remote;h=3da3abf5fa3df9ee158c8faf9c7715d74032d3ec;hb=07fbcf11a78d2ee20697eb98f5b7eeaa2475f1d1;hp=978b21124990747fb9da70a8a3ccfd25c90405ca;hpb=103a2e153f844343c359882079936b2521c82f15;p=distro-setup diff --git a/mount-latest-remote b/mount-latest-remote index 978b211..3da3abf 100755 --- a/mount-latest-remote +++ b/mount-latest-remote @@ -13,20 +13,26 @@ # See the License for the specific language governing permissions and # limitations under the License. -source /usr/local/lib/err -script_dir=$(dirname $(readlink -f "$BASH_SOURCE")) +# usage: HOST [mount-latest-subvol args] + +set -e; . /usr/local/lib/bash-bear; set +e + +readonly this_file; this_file="$(readlink -f -- "${BASH_SOURCE[0]}")"; +script_dir=${this_file%/*} if (( ! $# )); then - echo "mount-latest-remote: error: expected 1 or more host arguments" + echo "mount-latest-remote: error: a host argument" exit 1 fi +tg="$1" +shift + $script_dir/install-my-scripts cd /usr/local ecode=0 -failed_hosts=() # exit code run er() { @@ -34,26 +40,18 @@ er() { "$@" || ret=$? if (( ret )); then echo "$0: failed command: $*" - failed_hosts+=($tg) fi if (( ret > ecode )); then ecode=$ret fi } -for tg; do - rsynctg=$tg - if [[ $tg == *:* ]]; then - rsynctg="[$tg]" - fi - # R = relative, t = times, O = omit-dir-times, p = perms - er rsync -RtOp bin/{mount-latest-subvol,check-subvol-stale} lib/err "root@$rsynctg:/usr/local" || continue - # this can hang if we have an old nfs mount - ssh root@$tg timeout -s 9 600 /usr/local/bin/mount-latest-subvol ||: -done - -if (( $# == ${#failed_hosts[@]} )); then - echo "$0: error: all hosts failed: $*" >&2 -elif (( ${#failed_hosts[@]} )); then - echo "$0: error: some hosts failed: ${failed_hosts[@]}" >&2 +rsynctg=$tg +if [[ $tg == *:* ]]; then + rsynctg="[$tg]" fi +# R = relative, t = times, O = omit-dir-times, p = perms +er rsync -RtOp bin/{mount-latest-subvol,check-subvol-stale} lib/bash-bear "root@$rsynctg:/usr/local" ||: +# note: this can hang if we have an old nfs mount. +er ssh root@$tg timeout -s 9 600 /usr/local/bin/mount-latest-subvol "$@" + exit $ecode