lh-l4v/misc/filemerge/fmdiff

66 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2012, Bruno De Fraine
# This file is in the public domain.
#
# Code from: http://www.defraine.net/~brunod/fmdiff/
#
# Wrapper script to use FileMerge as a diff-cmd in Subversion
#
FM="/Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge"
FMDIFF="$(basename $0)"
GN="/usr/local/bin/growlnotify"
while [ $# != 0 ]; do
case $1 in
-u)
unified=1
;;
-L)
shift
if [ -z "$leftlabel" ]; then
leftlabel=$1
elif [ -z "$rightlabel" ]; then
rightlabel=$1
else
echo "Too many labels" 1>&2
exit 2
fi
;;
-*)
echo "Unknown option: $1" 1>&2
exit 2
;;
*)
if [ -z "$leftfile" ]; then
leftfile=$1
elif [ -z "$rightfile" ]; then
rightfile=$1
else
echo "Too many files to diff" 1>&2
exit 2
fi
esac
shift
done
if [ -z "$leftfile" ] || [ -z "$rightfile" ]; then
echo "Usage: $FMDIFF [options] leftfile rightfile" 1>&2
exit 2
fi
function labels {
[ -n "$leftlabel" ] && echo Left: $leftlabel
[ -n "$rightlabel" ] && echo Right: $rightlabel
}
echo Starting FileMerge... 1>&2
labels 1>&2
if [ -x "$GN" ]; then
labels | "$GN" -n "$FMDIFF" "Starting FileMerge"
fi
exec "$FM" -left "$leftfile" -right "$rightfile"