summaryrefslogtreecommitdiffstats
path: root/scripts/ipkg-check-equal
diff options
context:
space:
mode:
authorRobert Schwebel <r.schwebel@pengutronix.de>2005-12-15 12:43:49 +0000
committerRobert Schwebel <r.schwebel@pengutronix.de>2005-12-15 12:43:49 +0000
commit9605771592af7708aeb07d0296ce9e9dc4971a90 (patch)
treef1b6a238b62618aaee7d476a3faf1a8dd57345ef /scripts/ipkg-check-equal
parenta3ec2d74c920c4e578a51503bb478165207b156d (diff)
downloadptxdist-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-xscripts/ipkg-check-equal59
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
+