diff options
author | Robert Schwebel <r.schwebel@pengutronix.de> | 2005-12-15 12:43:49 +0000 |
---|---|---|
committer | Robert Schwebel <r.schwebel@pengutronix.de> | 2005-12-15 12:43:49 +0000 |
commit | 9605771592af7708aeb07d0296ce9e9dc4971a90 (patch) | |
tree | f1b6a238b62618aaee7d476a3faf1a8dd57345ef /scripts/ipkg-check-equal | |
parent | a3ec2d74c920c4e578a51503bb478165207b156d (diff) | |
download | ptxdist-9605771592af7708aeb07d0296ce9e9dc4971a90.tar.gz ptxdist-9605771592af7708aeb07d0296ce9e9dc4971a90.tar.xz |
git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunks/ptxdist-0.7-trunk@3533 33e552b5-05e3-0310-8538-816dae2090ed
Diffstat (limited to 'scripts/ipkg-check-equal')
-rwxr-xr-x | scripts/ipkg-check-equal | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/scripts/ipkg-check-equal b/scripts/ipkg-check-equal new file mode 100755 index 000000000..14d59b19c --- /dev/null +++ b/scripts/ipkg-check-equal @@ -0,0 +1,59 @@ +#!/bin/bash +# +# usage: ipkg-check-equal <first.ipk> <second.ipk> + +PTXDIST_TOPDIR=`pwd` +TMPDIR=`mktemp -d /tmp/ptxdist.XXXXXX` +IPKG1=$1 +IPKG2=$2 + +if [ ! -f "$IPKG1" ]; then + echo -e "\nError: couldn't find $IPKG1\n" + exit 1 +fi + +if [ ! -f "$IPKG2" ]; then + echo -e "\nError: couldn't find $IPKG2\n" + exit 1 +fi + +mkdir -p ${TMPDIR}/first/data +mkdir -p ${TMPDIR}/first/control +pushd ${TMPDIR}/first +ar x $IPKG1 +cd data && tar -zxf ../data.tar.gz; cd .. +cd control && tar -zxf ../control.tar.gz; cd .. +find data -type f | xargs md5sum | awk '{printf("%s ", $2); print $1}' | sort -u > data.md5 +find control -type f | xargs md5sum | awk '{printf("%s ", $2); print $1}' | sort -u > control.md5 +popd + +mkdir -p ${TMPDIR}/second/data +mkdir -p ${TMPDIR}/second/control +pushd ${TMPDIR}/second +ar x $IPKG2 +cd data && tar -zxf ../data.tar.gz; cd .. +cd control && tar -zxf ../control.tar.gz; cd .. +find data -type f | xargs md5sum | awk '{printf("%s ", $2); print $1}' | sort -u > data.md5 +find control -type f | xargs md5sum | awk '{printf("%s ", $2); print $1}' | sort -u > control.md5 +popd + +echo "comparing:" +echo " $IPKG1" +echo " $IPKG2" + +diff -u ${TMPDIR}/first/data.md5 ${TMPDIR}/second/data.md5 +DIFF_DATA=$? + +diff -u ${TMPDIR}/first/control.md5 ${TMPDIR}/second/control.md5 +DIFF_CONTROL=$? + +rm -fr ${TMPDIR} + +if [ "$DIFF_DATA" = "0" ] && [ "$DIFF_CONTROL" = "0" ]; then + echo "archives are equal" + exit 0 +fi + +echo "archives are not equal" +exit 1 + |