10 if [ -z "$scriptname" ]; then
11 echo "Run with a fetch script as an argument:"
12 (cd fetch-scripts && ls)
16 if ! [ -e fetch-scripts/"$scriptname" ]; then
17 echo "Unknown fetch script $scriptname"
21 mkdir -p "$MIRRORDIR/.locks"
23 # Save a copy of stdout on FD 3, so we can get it back again
26 logname="$MIRRORDIR/.logs/$scriptname-$(date +"%F-%R:%S").log"
28 exec >> "$logname" 2>&1
29 date +"Starting $scriptname: %c"
31 #NB: -r is number of retries, at 8 second intervals
32 if lockfile -r 900 "$MIRRORDIR/.locks/$scriptname"; then
33 date +"Received lock: %c"
34 (. fetch-scripts/"$scriptname")
36 rm -f "$MIRRORDIR/.locks/$scriptname"
40 if [ $exitstatus -ne 0 ]; then
41 exec 1>&3 # Restore stdout
42 echo "Synchronization of $scriptname failed:"
43 echo "(last 100 lines)"
45 tail -n 100 "$logname"