#!/bin/sh
exec 1>&2
env | grep RSYNC | sort | tr '\n' '\t'; echo
set -x
case $RSYNC_MODULE_NAME in
(*.push) ;;
(*) exit 1;;
esac
for m in $RSYNC_MODULE_PATH/.snapshot.[0-9]*; do
test -f "$m" || continue
test -n "$mark" && exit 1
mark=$m
done
test -f "$mark" || exit 1
snap_dir=${RSYNC_MODULE_PATH%/*}
if test -f "$snap_dir/${mark##*/}"; then
# already have this snapshot
rm -f "$mark"
exit $?
fi
ts=${mark##*.}
rsync -aA --exclude=/.snapshot.\* --link-dest="$RSYNC_MODULE_PATH/" "$RSYNC_MODULE_PATH/" "$snap_dir/$ts/" || exit $?
touch "$snap_dir/$ts/${mark##*/}" || exit $?
mv "$mark" "$snap_dir/" || exit $?