X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=mount-latest-remote;fp=mount-latest-remote;h=bcd9e284e1703c3c686860ae2cae3d3a5cd5760f;hb=c00afb64faf2a6f25c59a72c0e801f079ea746aa;hp=d43cbf2081102ba3c255de6d94c9c74595f1ac04;hpb=4210925ed3781b55836edea33cfea55b392339cf;p=distro-setup diff --git a/mount-latest-remote b/mount-latest-remote index d43cbf2..bcd9e28 100755 --- a/mount-latest-remote +++ b/mount-latest-remote @@ -13,20 +13,25 @@ # See the License for the specific language governing permissions and # limitations under the License. + +# usage: HOST [mount-latest-subvol args] + source /usr/local/lib/err script_dir=$(dirname $(readlink -f "$BASH_SOURCE")) 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 +39,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 - # 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 -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/err "root@$rsynctg:/usr/local" || continue +# 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