#!/bin/sh # Copyright © 2011, 2012 Jakub Wilk # Redistribution and use in source and compiled forms, with or without # modification, are permitted under any circumstances. No warranty. if [ $# -ne 2 ] then printf 'Usage: %s \n' "$0" exit 1 fi set -e deb1="$1" deb2="$2" base1=$(basename "$deb1" .deb) base2=$(basename "$deb2" .deb) tmpdir=$(mktemp -t -d) if which git >/dev/null 2>&1; then git init "$tmpdir/repo" >/dev/null 2>&1 (cd "$tmpdir/repo"; touch emptyfile; git add emptyfile; git commit -m'initial commit' >/dev/null 2>&1; git checkout -b "$base1" >/dev/null 2>&1; ); dpkg-deb --raw-extract "$deb1" "$tmpdir/repo" (cd "$tmpdir/repo"; git add * >/dev/null 2>&1; git rm emptyfile >/dev/null 2>&1; git commit -m"add $base1" >/dev/null 2>&1; git checkout master >/dev/null 2>&1; git checkout -b "$base2" >/dev/null 2>&1; ); dpkg-deb --raw-extract "$deb2" "$tmpdir/repo" (cd "$tmpdir/repo"; git add * >/dev/null 2>&1; git rm emptyfile >/dev/null 2>&1; git commit -m"add $base2" >/dev/null 2>&1; git diff "$base1" "$base2" --; ); rm -rf "$tmpdir"; else mkdir -p "$tmpdir/a/$base1/" dpkg-deb --raw-extract "$deb1" "$tmpdir/a/$base1/" mkdir -p "$tmpdir/b/$base2/" dpkg-deb --raw-extract "$deb2" "$tmpdir/b/$base2/" cd "$tmpdir" diff -urN "a/$base1/" "b/$base2/" cd / rm -rf "$tmpdir" fi; # vim:ts=4 sw=4 et