[Libreoffice-commits] dev-tools.git: prettyprint/zipdiff
Miklos Vajna
vmiklos at collabora.co.uk
Fri Jul 18 05:18:47 PDT 2014
prettyprint/zipdiff | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+)
New commits:
commit f2713985b034438ab9ae52dbd09d4bd0186cc039
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Fri Jul 18 14:18:01 2014 +0200
prettyprint: add zipdiff script
Change-Id: I5222798d326a21dd2f4170df3880cf1af4deca9d
diff --git a/prettyprint/zipdiff b/prettyprint/zipdiff
new file mode 100755
index 0000000..b1a39dc
--- /dev/null
+++ b/prettyprint/zipdiff
@@ -0,0 +1,64 @@
+#!/bin/bash
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+# For ODF, there is flat ODF, but for other XML-based zipped formats, you have
+# to unpack the archive and compare each file manually.
+#
+# This script tries to automate that: you can diff archive contents as well XML
+# contents as well.
+
+# Allow symlinking to ~/bin while still finding formatxml next to us in the original location.
+mydir=$(dirname $0)
+[ -h $0 ] && mydir=$(dirname $(readlink $0))
+
+unpack()
+{
+ mkdir $1
+ cd $1
+ unzip -q $2
+ if [ -z "$filesOnly" ]; then
+ for i in $(find . -name "*.xml" -o -name "*.rels")
+ do
+ $mydir/formatxml "$i" > "$i-new"
+ mv -f "$i-new" "$i"
+ done
+ fi
+ cd ..
+}
+
+filesOnly=
+if [ "$1" = "-f" ]; then
+ shift
+ filesOnly=t
+fi
+
+if [ -z "$1" -o -z "$2" ]; then
+ echo "usage: zipdiff [-f] onefile otherfile"
+ echo
+ echo "-f diff only the list of files, not their contents"
+ exit 1
+fi
+
+a=$(realpath $1)
+b=$(realpath $2)
+workdir=$(mktemp -d)
+cd $workdir
+unpack a $a
+unpack b $b
+
+if [ -n "$filesOnly" ]; then
+ find a -mindepth 1 |sed 's|^a/||' |sort > a-list
+ find b -mindepth 1 |sed 's|^b/||' |sort > b-list
+ diff -u a-list b-list
+else
+ diff -Nur a b
+fi
+rm -rf $workdir
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
More information about the Libreoffice-commits
mailing list