aboutsummaryrefslogtreecommitdiff
path: root/slackpkgdiff
diff options
context:
space:
mode:
Diffstat (limited to 'slackpkgdiff')
-rwxr-xr-xslackpkgdiff29
1 files changed, 29 insertions, 0 deletions
diff --git a/slackpkgdiff b/slackpkgdiff
new file mode 100755
index 0000000..d6aca04
--- /dev/null
+++ b/slackpkgdiff
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# compare filenames in 2 tarballs, except /usr/doc/blah-<version> dirs
+# get treated specially.
+
+if [ "$1" = "--help" ]; then
+ cat <<EOF
+slackpkgdiff - compare contents of 2 Slackware packages without installing them
+Usage: slackpkgdiff pkg1 pkg2
+EOF
+fi
+
+pkg_name() {
+ echo "$1" | sed 's,.*/,,' | sed 's,\.[^.]*$,,'
+}
+
+list_tar() {
+ pkg="$( echo $1 | sed 's,\.[^.]*,,' )"
+ tar tf "$1" | sed 's,usr/doc/[^/]*/,usr/doc/@DOCDIR@/,' | sort > $DIR/$( pkg_name "$1" )
+}
+
+DIR=/tmp/pkgdiff.$RANDOM.$$
+mkdir -p $DIR || exit 1
+list_tar "$1"
+list_tar "$2"
+diff $DIR/$( pkg_name "$1" ) $DIR/$( pkg_name "$2" )
+ret="$?"
+rm -rf $DIR
+return "$ret"