#!/bin/sh
#
# Author: Aaron Voisine <aaron@voisine.org>
# Inkscape Modifications: Michael Wybrow <mjwybrow@users.sourceforge.net>

CWD="`dirname \"$0\"`"

# System version: 3 for Panther, 4 for Tiger, 5 for Leopard
VERSION=`/usr/bin/sw_vers | grep ProductVersion | cut -f2 -d'.'`


# FIXME apparently this removes the xterm that starts with X from xinitrc but when is it really used? Should we modify the .xinitrc of the user without warning?
ps -wx -ocommand | grep -e '[X]11' > /dev/null
if [ "$?" != "0" -a ! -f ~/.xinitrc ]; then
    echo "rm -f ~/.xinitrc" > ~/.xinitrc
    sed 's/xterm/# xterm/' /usr/X11R6/lib/X11/xinit/xinitrc >> ~/.xinitrc
fi

# For Panther and Tiger, start X11
if [[ $VERSION -le 4 ]]; then
	# Start X11 and get DISPLAY
	cp -f "$CWD/bin/getdisplay.sh" /tmp/
	rm -f /tmp/display.$UID
	open-x11 /tmp/getdisplay.sh || \
	open -a XDarwin /tmp/getdisplay.sh || \
	echo ":0" > /tmp/display.$UID

	while [ "$?" == "0" -a ! -f /tmp/display.$UID ]; do
	    sleep 1
	done
	export DISPLAY="`cat /tmp/display.$UID`"

	ps -wx -ocommand | grep -e '[X]11' > /dev/null || exit 11
fi

# In Leopard, X11 should start on itself


# Warn the user about time-consuming generation of fontconfig caches.
test -f ~/.inkscape/.fccache-new || exit 12


BASE="`echo "$0" | sed -e 's/\/Contents\/Resources\/script/\//'`"
cd "$BASE"
exec "$CWD/bin/inkscape" "$@"
# TODO examine wether it would be wisest to move the code from inkscape shell script and getdisplay.sh to here and only keep the real binary in bin. This may make things easier on Leopard and may also help using Inkscape on the command line