#!/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 ... set -e set -o pipefail usage() { cat <&2; exit 1;; esac done shift $(($OPTIND - 1)) if ! test $# -eq 2 then usage 1>&2 exit 1 fi src="$1" dest="$2" tmpfile="$(mktemp /tmp/bup-test-XXXXXXX)" trap "rm -rf '${tmpfile}'" 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) 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}" if test $(wc -l < "${tmpfile}") != 0; then echo "Differences between $src and $dest" cat "${tmpfile}" exit 1 fi exit 0