#!/bin/bash set -e . ./OPTIONS.sh scriptname=$1 shift if [ -z "$scriptname" ]; then echo "Run with a fetch script as an argument:" (cd fetch-scripts && ls) exit 1 fi if ! [ -e fetch-scripts/"$scriptname" ]; then echo "Unknown fetch script $scriptname" exit 1 fi echo "Logging the rsync version used" rsync --version date +"Starting $scriptname: %c" # Use flock(1) in exclusive mode, waiting up to 5 minutes. ( flock -x -w 300 200 || exit 1 date +"Received lock: %c" (. fetch-scripts/"$scriptname") && : exit $? ) 200>"$MIRRORDIR/.locks/$scriptname" exitstatus=$? date +"Done: %c" if [[ $exitstatus -eq 25 ]]; then echo "Error code $exitstatus ignored." exit 0 fi exit $exitstatus