#!/bin/sh # pngcrush pre-commit hook script for Subversion # by Ryan Schmidt # http://www.ryandesign.com/ # MIT license REPO="$1" TXN="$2" PREFIX=/usr/local CMP=cmp MKTEMP=mktemp PNGCRUSH=$PREFIX/bin/pngcrush SED=sed SVNLOOK=$PREFIX/bin/svnlook if [ -z "$TMPDIR" ]; then TMPDIR=/tmp fi PNGS=$($SVNLOOK changed -t "$TXN" "$REPO" | $SED -n 's|^....\(.*\.png\)$|\1|p') for PNG in $PNGS; do TEMP_BEFORE=$($MKTEMP "$TMPDIR/pngcrush-before.XXXXXXXX") TEMP_AFTER=$($MKTEMP "$TMPDIR/pngcrush-after.XXXXXXXX") $SVNLOOK cat -t "$TXN" "$REPO" "$PNG" > $TEMP_BEFORE || exit 1 $PNGCRUSH $TEMP_BEFORE $TEMP_AFTER || exit 1 $CMP -s $TEMP_BEFORE $TEMP_AFTER CMP_RESULT=$? rm -f $TEMP_BEFORE $TEMP_AFTER if [ $CMP_RESULT -ne 0 ]; then echo "Please use pngcrush on $PNG before committing" 1>&2 exit 1 fi done exit 0