#! /bin/sh

set -e

if [ -z "$1" ] || [ -z "$2" ] ; then
    echo "usage: iface-diff deb1 deb2"
    exit 0
fi

dir=`mktemp -p /tmp -d iface-diff.XXXXXXXXX`
cp "$1" $dir/`basename "$1"`
cp "$2" $dir/`basename "$2"`
cd $dir

(
mkdir 1
cd 1
ar x ../`basename "$1"`
tar xf data.tar.gz
for a in `find usr/ -name "*.hi" | sort`; do
    ghc --show-iface "$a" >> ../1.iface
done
cd ..
touch 1.done
) &
mkdir 2
cd 2
ar x ../`basename "$2"`
tar xf data.tar.gz
for a in `find usr/ -name "*.hi" | sort`; do
    ghc --show-iface "$a" >> ../2.iface
done
cd ..

until test -e 1.done; do sleep 1; done
diff -u 1.iface 2.iface

cd /
rm -r $dir
