1#!/bin/sh 2# 3# This file is in the public domain. 4# 5# @TAG(PUBLIC_DOMAIN) 6# 7 8# 9# Code from: http://www.defraine.net/~brunod/fmdiff/ 10# 11# Wrapper script to use FileMerge as a diff-cmd in Subversion 12# 13 14FM="/Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge" 15FMDIFF="$(basename $0)" 16GN="/usr/local/bin/growlnotify" 17 18while [ $# != 0 ]; do 19 case $1 in 20 -u) 21 unified=1 22 ;; 23 -L) 24 shift 25 if [ -z "$leftlabel" ]; then 26 leftlabel=$1 27 elif [ -z "$rightlabel" ]; then 28 rightlabel=$1 29 else 30 echo "Too many labels" 1>&2 31 exit 2 32 fi 33 ;; 34 -*) 35 echo "Unknown option: $1" 1>&2 36 exit 2 37 ;; 38 *) 39 if [ -z "$leftfile" ]; then 40 leftfile=$1 41 elif [ -z "$rightfile" ]; then 42 rightfile=$1 43 else 44 echo "Too many files to diff" 1>&2 45 exit 2 46 fi 47 esac 48 shift 49done 50 51if [ -z "$leftfile" ] || [ -z "$rightfile" ]; then 52 echo "Usage: $FMDIFF [options] leftfile rightfile" 1>&2 53 exit 2 54fi 55 56function labels { 57 [ -n "$leftlabel" ] && echo Left: $leftlabel 58 [ -n "$rightlabel" ] && echo Right: $rightlabel 59} 60 61echo Starting FileMerge... 1>&2 62labels 1>&2 63if [ -x "$GN" ]; then 64 labels | "$GN" -n "$FMDIFF" "Starting FileMerge" 65fi 66 67exec "$FM" -left "$leftfile" -right "$rightfile" 68