git.iko.soy/typeable/pandoc
on rc/test help sign in
typeable/pandoc/tools/diff-zip.sh
33 lines 876 B history raw
1#!/bin/sh
3# This script allows you to compare two epub, odt, or docx
4# containers, ignoring insignificant formatting differences
5# in the XML contents.
7UNAME=$(uname)
8if [ "$UNAME" = "Darwin" ]; then
9 FIND="find -E"
10else
11 FIND="find -regextype posix-extended"
12fi
14f1="$1"
15f2="$2"
16test -f "$f1" -a -f "$f2" || {
17 echo "Usage: diff-zip firstfile secondfile" && exit 1
19WORKDIR=$(mktemp -d -t diff-zip.XXX)
20trap "{ rm -r $WORKDIR; }" EXIT
21unzip -q -d "$WORKDIR/a" "$f1"
22unzip -q -d "$WORKDIR/b" "$f2"
23cd "$WORKDIR"
24mkdir tidy
25for x in a b; do
26 cp -r $x tidy/
27 $FIND $x -iregex '.*\.(xhtml|xml|rdf|rels)' -exec sh -c 'mkdir -p "$(dirname tidy/$1)" && tidy -q -xml -utf8 -i "$1" > "tidy/$1"' _ {} \;
28done
29cd tidy
30mkdir c
31cp -r a/* c/
32cp -r b/* c/
33find c -type f -exec sh -c 'echo -e "\033[1m=== ${1#*/} ===\033[0m" ; diff -u "a/${1#*/}" "b/${1#*/}" 2>&1' _ {} \;