#!/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