Converts git versions to csv and diffs those
Usage:
diff-pref diff working copy and HEAD
diff-pref <rev> diff working copy and <rev>
diff-prev <rev-a> <rev-b> diff two revisions
Signed-off-by: Keith Packard <keithp@keithp.com>
--- /dev/null
+#!/bin/bash
+
+AM=`dirname "$0"`/..
+
+case $# in
+ 0)
+ echo "Usage: $0 <ref-a> {ref-b}" 1>&2
+ exit 1
+ ;;
+ 1)
+ ref_a="$1"
+ ref_b="preferred-parts.ods"
+ ;;
+ 2)
+ ref_a="$1"
+ ref_b="$2"
+ ;;
+esac
+
+TMP_A=`mktemp -d -p .`
+TMP_B=`mktemp -d -p .`
+
+trap "rm -r '$TMP_A' '$TMP_B'" 0 1 15
+
+(cd "$AM" && git show "$ref_a":preferred-parts.ods) > "$TMP_A"/preferred-parts.ods || (echo "$ref_a: show failed"; exit 1)
+libreoffice --headless --convert-to csv "$TMP_A"/preferred-parts.ods --outdir "$TMP_A" >&/dev/null || (echo "$ref_a: convert failed"; exit 1)
+case "$ref_b" in
+ preferred-parts.ods)
+ libreoffice --headless --convert-to csv "$AM"/preferred-parts.ods --outdir "$TMP_B" >&/dev/null || (echo "$ref_b: convert failed"; exit 1)
+ ;;
+ *)
+ (cd "$AM" && git show "$ref_b":preferred-parts.ods) > $TMP_B/preferred-parts.ods || (echo "$ref_b: show failed"; exit 1)
+ libreoffice --headless --convert-to csv "$TMP_B"/preferred-parts.ods --outdir "$TMP_B" >&/dev/null || (echo "$ref_b: convert failed"; exit 1)
+ ;;
+esac
+
+diff --label "$ref_a" --label "$ref_b" -u "$TMP_A"/preferred-parts.csv "$TMP_B"/preferred-parts.csv