From 2c2d4e2138c85f4669c2c7f8868697c9047bbd00 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 10 Jul 2019 20:28:21 -0700 Subject: Add diff-docx.sh to tools. --- tools/diff-docx.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 tools/diff-docx.sh (limited to 'tools') diff --git a/tools/diff-docx.sh b/tools/diff-docx.sh new file mode 100755 index 000000000..62e165ae5 --- /dev/null +++ b/tools/diff-docx.sh @@ -0,0 +1,22 @@ +#!/bin/sh +f1="$1" +f2="$2" +test -f "$f1" -a -f "$f2" || { + echo "Usage: diff-docx first.docx second.docx" && exit 1 +} +WORKDIR=$(mktemp -d -t diff-docx) +trap "{ rm -r $WORKDIR; }" EXIT +unzip -q -d "$WORKDIR/a" "$f1" +unzip -q -d "$WORKDIR/b" "$f2" +cd "$WORKDIR" +mkdir tidy +for x in a b; do + cp -r $x tidy/ + find $x -iname '*.xml' -exec sh -c 'mkdir -p "$(dirname tidy/$1)" && tidy -q -xml -utf8 -i "$1" > "tidy/$1"' _ {} \; + find $x -iname '*.rels' -exec sh -c 'mkdir -p "$(dirname tidy/$1)" && tidy -q -xml -utf8 -i "$1" > "tidy/$1"' _ {} \; +done +cd tidy +mkdir c +cp -r a/* c/ +cp -r b/* c/ +find c -type f -exec sh -c 'echo "\033[1m=== ${1#*/} ===\033[0m" ; diff -u "a/${1#*/}" "b/${1#*/}" 2>&1' _ {} \; -- cgit v1.2.3