#!/bin/sh
# dir_compare.sh
#
################################################################
# Copyright (C) 2003 Robert Anderson and Tom Lord
#
# See the file "COPYING" for further information about
# the copyright and warranty status of this work.
#
dir1="$1"
dir2="$2"
# diff -r on files and directories
diff -r --exclude ,,\* --exclude ++\* --exclude link\* "$dir1" "$dir2"
filesdirs=$?
# make symlink target index
rm -f ,,link-index1 ,,link-index2
cd "$dir1"
find . -name "++*" -prune -o \
-type l -printf "'%p' -> '%l'\n" | sort > ../,,link-index1
cd ../"$dir2"
find . -name "++*" -prune -o \
-type l -printf "'%p' -> '%l'\n" | sort > ../,,link-index2
cd ..
set +e
diff ,,link-index1 ,,link-index2
links=$?
set -e
if [ $filesdirs -ne 0 ] || [ $links -ne 0 ]; then
echo "$1 != $2"
exit 1
else
echo "dir cmp: ok."
exit 0
fi
#set +x
# make metadata index
# cd tree-MOD
# find . -name \* -printf "%h/%f %m\n" > ../,,metadata
# sort ../,,metadata > ++metadata
# rm ../,,metadata
# cd ../tree-TARGET
# find . -name \* -printf "%h/%f %m\n" > ../,,metadata
# sort ../,,metadata > ++metadata
# rm ../,,metadata
# cd ..
# tag: Robert Anderson Sun May 18 18:13:10 PDT 2003 (dir_compare.sh)
syntax highlighted by Code2HTML, v. 0.9.1