#!/bin/sh # $Id: compare-image-directories,v 1.1 2010/01/19 13:27:13 friedman Exp $ cvt() { convert "$1" -format "$2" -compress None "$3" } compare() { local img=$1 local old_dir=$2 local new_dir=$3 local cmp_dir=$4 local base=${img%.*} local fmt=ppm local old=$cmp_dir/old-$base.$fmt local new=$cmp_dir/new-$base.$fmt cvt "$old_dir/$img" $fmt "$old" cvt "$new_dir/$img" $fmt "$new" cmp -s "$old" "$new" local result=$? case $result in 0 ) rm -f "$old" "$new" ;; * ) echo differs: $img return $result ;; esac } compare_dirs() { local old_dir=$1 local new_dir=$2 local cmp_dir=compare$$ mkdir -p "$cmp_dir" for img in $old_dir/*; do img=${img##*/} test -f "$new_dir/$img" || continue compare "$img" "$old_dir" "$new_dir" "$cmp_dir" done rmdir $cmp_dir 2> /dev/null if [ -d $cmp_dir ]; then echo Differed bitmaps left in $cmp_dir 1>&2 fi } main() { case $# in 2 ) : ;; * ) echo Usage: ${0##*/} '[old_dir]' '[new_dir]' 1>&2 exit 1 ;; esac compare_dirs "$@" } main "$@" # eof