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