diff options
Diffstat (limited to 'slackpkgdiff')
-rwxr-xr-x | slackpkgdiff | 29 |
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" |