+++ /dev/null
-#!/usr/bin/env bash
-
-# Test that src and dest trees are as identical as bup is capable of
-# making them. For now, use rsync -niaHAX ...
-
-usage() {
-cat <<EOF
-Usage: compare-trees [-h] [-c] [-x] SOURCE DEST
-OPTIONS:
- -h
- Display help
- -c
- Check file content (default)
- -x
- Don't check file content (rely on size/timestamps, etc.)
-EOF
-}
-
-verify_content=" --checksum"
-
-while getopts "hcx" OPTION
-do
- case "$OPTION" in
- h) usage; exit 0;;
- c) verify_content=" --checksum";;
- x) verify_content="";;
- ?) usage 1>&2; exit 1;;
- esac
-done
-
-shift $(($OPTIND - 1)) || exit $?
-
-if ! test $# -eq 2
-then
- usage 1>&2
- exit 1
-fi
-
-src="$1"
-dest="$2"
-
-tmpfile="$(mktemp /tmp/bup-test-XXXXXXX)" || exit $?
-trap "rm -rf '$tmpfile'" EXIT || exit $?
-
-rsync_opts="-niaH$verify_content --delete"
-
-rsync_version=$(rsync --version)
-if [[ ! "$rsync_version" =~ "ACLs" ]] || [[ "$rsync_version" =~ "no ACLs" ]]; then
- echo "Not comparing ACLs (not supported by available rsync)" 1>&2
-else
- case $OSTYPE in
- cygwin|darwin|freebsd)
- echo "Not comparing ACLs (not yet supported on $OSTYPE)" 1>&2
- ;;
- *)
- rsync_opts="$rsync_opts -A"
- ;;
- esac
-fi
-
-if [[ ! "$rsync_version" =~ "xattrs" ]] || [[ "$rsync_version" =~ "no xattrs" ]]; then
- echo "Not comparing xattrs (not supported by available rsync)" 1>&2
-else
- rsync_opts="$rsync_opts -X"
-fi
-
-rsync $rsync_opts "$src" "$dest" > "$tmpfile" || exit $?
-
-if test $(wc -l < "$tmpfile") != 0; then
- echo "Differences between $src and $dest"
- cat "$tmpfile"
- exit 1
-fi
-
-exit 0