#!/bin/sh
#
# tardiff.sh
# 2013-11-19
# by Gernot Walzl
#
# Compares the content of 2 tar archives
TAR_A=$(readlink -m $1)
TAR_B=$(readlink -m $2)
print_usage () {
echo "Usage: $0 a.tar.gz b.tar.gz"
}
if [ ! -r "$TAR_A" -o ! -r "$TAR_B" ]; then
print_usage
exit 1
fi
set -e
CWD=$(pwd)
TMP=$(mktemp -d)
cd $TMP || exit 1
mkdir a
cd a
tar xvf "$TAR_A"
find . -type f -print0 | sort -z | xargs -0 md5sum > ../a.md5
cd ..
mkdir b
cd b
tar xvf "$TAR_B"
find . -type f -print0 | sort -z | xargs -0 md5sum > ../b.md5
cd ..
diff -u a.md5 b.md5 || true
cd $CWD
rm -rf $TMP