X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Froles%2Ffiles%2Fstatic-mirroring%2Fstaticsync-ssh-wrap;h=959b4f8f0df84dd186c8ed3e4b0654836cd38050;hb=0aac917e02155dbb1b9f06d317f389feac08911d;hp=ba880881f1fd874294a657c3f39dbd8a68f7b3b0;hpb=8ab2d44a1f18f1d17a04e4937f13d1fb7c47a58b;p=mirror%2Fdsa-puppet.git diff --git a/modules/roles/files/static-mirroring/staticsync-ssh-wrap b/modules/roles/files/static-mirroring/staticsync-ssh-wrap index ba880881f..959b4f8f0 100755 --- a/modules/roles/files/static-mirroring/staticsync-ssh-wrap +++ b/modules/roles/files/static-mirroring/staticsync-ssh-wrap @@ -24,8 +24,14 @@ set -e set -u +. /etc/staticsync.conf +if ! [ -n "$base" ]; then + echo >&2 "base not configured!" + exit 1 +fi +BASEDIR="$base" + MYLOGNAME="`basename "$0"`[$$]" -BASEDIR="/srv/static.debian.org" COMPONENTLIST=/etc/static-components.conf usage() { @@ -78,6 +84,7 @@ do_rsync_on_master() { allowed_rsyncs=() allowed_rsyncs+=("--server --sender -vlHtrze.iLsf --safe-links .") # wheezy allowed_rsyncs+=("--server --sender -vlHtrze.iLsfx --safe-links .") # jessie + allowed_rsyncs+=("--server --sender -vlHtrze.iLsfxC --safe-links .") # stretch for cmd_idx in ${!allowed_rsyncs[*]}; do args="${allowed_rsyncs[$cmd_idx]}" @@ -90,9 +97,13 @@ do_rsync_on_master() { elif [ "$*" = "$args $component/-live-/" ] || [ "$*" = "$args ./$component/-live-/" ] ; then local path="$BASEDIR/master/$component-current-live" info "host $remote_host wants $path, acquiring lock" - exec 200< "$path" + tgtlock="$BASEDIR/master/$component.lock" + if ! [ -e "$tgtlock" ]; then + touch "$tgtlock" + fi + exec 200< "$tgtlock" if ! flock -s -w 0 200; then - echo >&2 "Cannot acquire shared lock on $path - this should mean an update is already underway anyway." + echo >&2 "Cannot acquire shared lock on $tgtlock covering $path - this should mean an update is already underway anyway." exit 1 fi exec rsync $args "$path/." @@ -113,6 +124,7 @@ do_rsync_on_source() { for path in $(awk -v host="$(hostname -f)" '!/^ *(#|$)/ && $3 == host {print $4}' $COMPONENTLIST); do allowed_rsyncs+=("--server --sender -lHtrze.iLsf --safe-links . $path/.") # wheezy allowed_rsyncs+=("--server --sender -lHtrze.iLsfx --safe-links . $path/.") # jessie + allowed_rsyncs+=("--server --sender -lHtrze.iLsfxC --safe-links . $path/.") # stretch done fi for cmd_idx in ${!allowed_rsyncs[*]}; do