mkdir -p "$MIRRORDIR/.locks"
-exec >> "$MIRRORDIR/.logs/$scriptname-$(date +"%F-%R:%S").log"
+# Save a copy of stdout on FD 3, so we can get it back again
+exec 3>&1
+
+logname="$MIRRORDIR/.logs/$scriptname-$(date +"%F-%R:%S").log"
+
+exec >> "$logname" 2>&1
date +"Starting $scriptname: %c"
#NB: -r is number of retries, at 8 second intervals
date +"Received lock: %c"
(. fetch-scripts/"$scriptname")
exitstatus=$?
- rm "$MIRRORDIR/.locks/$scriptname"
+ rm -f "$MIRRORDIR/.locks/$scriptname"
fi
date +"Done: %c"
-exit $exitstatus
\ No newline at end of file
+if [ $exitstatus -ne 0 ]; then
+ exec 1>&3 # Restore stdout
+ echo "Synchronization of $scriptname failed:"
+ echo "(last 100 lines)"
+ echo
+ tail -n 100 "$logname"
+fi
+exit $exitstatus