#!/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
export VERSION=`/usr/bin/sw_vers | grep ProductVersion | cut -f2 -d'.'`

# On Leopard, X11.app is installed by default, and will be started
# automatically via launchd.  On older systems, we need to start 
# X11 ourself.

# For Panther and Tiger, start X11
if [[ $VERSION -le 4 ]]; then
	# 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 "${HOME}/.xinitrc" ]; then
	    echo "rm -f \"\${HOME}/.xinitrc\"" > "${HOME}/.xinitrc"
	    sed 's/xterm/# xterm/' /usr/X11R6/lib/X11/xinit/xinitrc >> "${HOME}/.xinitrc"
	fi

	# Start X11 and get DISPLAY
	# FIXME: Insecure tmp file usage.  Why do we have to copy this to /tmp anyway?
	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
	
	# Warn the user about time-consuming generation of fontconfig caches.
	test -f ${HOME}/.inkscape/.fccache-new || exit 12
else
	# Leopard onwards...

	# Warn the user about time-consuming generation of fontconfig caches.
	test -d ${HOME}/.fontconfig || exit 12
fi



BASE=`echo "$0" | sed -e 's/\/Contents\/Resources\/script/\//'`
cd "$BASE"
exec "$CWD/bin/inkscape" "$@"
# TODO examine whether 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.

