From dd25f7644881e2ebed799bf67ced66c10dbcc47b Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Wed, 12 Dec 2012 01:23:27 +0000 Subject: [PATCH] use git if it exists --- deepdebdiff | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 deepdebdiff diff --git a/deepdebdiff b/deepdebdiff new file mode 100755 index 0000000..520b0e0 --- /dev/null +++ b/deepdebdiff @@ -0,0 +1,56 @@ +#!/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 -- 2.39.2