]> git.gag.com Git - hw/altusmetrum/commitdiff
Add 'diff-pref' tool to show preferred-parts.ods differences
authorKeith Packard <keithp@keithp.com>
Wed, 12 Feb 2025 06:00:59 +0000 (22:00 -0800)
committerKeith Packard <keithp@keithp.com>
Wed, 12 Feb 2025 06:00:59 +0000 (22:00 -0800)
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>
bin/diff-pref [new file with mode: 0755]

diff --git a/bin/diff-pref b/bin/diff-pref
new file mode 100755 (executable)
index 0000000..394175a
--- /dev/null
@@ -0,0 +1,37 @@
+#!/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