From 8b759031056345fbf8f8b1b08c407917b0ad3fb5 Mon Sep 17 00:00:00 2001 From: Jens Kleineheismann Date: Fri, 22 Mar 2019 17:32:26 +0100 Subject: [PATCH] ADD: prototype script to compare screenshots. --- diff-screenshots.sh | 135 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100755 diff-screenshots.sh diff --git a/diff-screenshots.sh b/diff-screenshots.sh new file mode 100755 index 0000000..1331986 --- /dev/null +++ b/diff-screenshots.sh @@ -0,0 +1,135 @@ +#!/bin/bash + +function print_help() { + bn=`basename $0` + cat <-Key or the -Key!" >&2 + echo "Or press Ctrl-C to abort." >&2 + echo "" + continue + fi + ;; + *) + echo "" + echo "What? $answer?" >&2 + echo "Please press the -Key or the -Key!" >&2 + echo "Or press Ctrl-C to abort." >&2 + echo "" + continue + ;; + esac + break + done + return $retval +} + + +ORIGINAL_DIR="" +MODIFIED_DIR="" + +if test $# -le 1 ; then + set -- -h +fi + +while test $# -gt 0 ; do +case "$1" in +-h|--help) + print_help + exit 0 + ;; +*) + ORIGINAL_DIR="$1" + MODIFIED_DIR="$2" + break + ;; +esac +done + +ORIGINAL_DIR=`echo "$ORIGINAL_DIR" | sed -e 's:/*$::'` +MODIFIED_DIR=`echo "$MODIFIED_DIR" | sed -e 's:/*$::'` + +original_files=`find "$ORIGINAL_DIR" -type f` +for original in $original_files ; do + relpath="${original#${ORIGINAL_DIR}/}" + reldir=`dirname "$relpath"` + basename=`basename "$relpath"` + basename_pattern=`echo "$basename" | sed -E -e 's:^[0-9]{8}-[0-9]{6}.[0-9]{6}-:*-*.*-:'` + modified_pattern="${MODIFIED_DIR}/${reldir}/${basename_pattern}" + modified=`echo $modified_pattern` + if ! test -e "$modified" ; then + echo "Only in ${ORIGINAL_DIR}: $relpath" >&2 + else + if ! cmp --quiet "$original" "$modified" ; then + echo "File differ: $relpath" >&2 + prompt="Display changes?" + if ask_yesno -n "$prompt" ; then + compare "$original" "$modified" miff:- | display + fi + fi + fi +done + +find "$MODIFIED_DIR" -type f | while read modified ; do + relpath="${modified#${MODIFIED_DIR}/}" + reldir=`dirname "$relpath"` + basename=`basename "$relpath"` + basename_pattern=`echo "$basename" | sed -E -e 's:^[0-9]{8}-[0-9]{6}.[0-9]{6}-:*-*.*-:'` + original_pattern="${ORIGINAL_DIR}/${reldir}/${basename_pattern}" + original=`echo $original_pattern` + if ! test -e "$original" ; then + echo "Only in ${MODIFIED_DIR}: $relpath" >&2 + fi +done