#!/bin/sh

SCRIPTDIR=`dirname "$0"`
RESDIR=${SCRIPTDIR}/../Resources/
PKGDIR=${SCRIPTDIR}/../Pkgs/

#run the path_helper to set the $PATH for accessing python
if [ -x /usr/libexec/path_helper ]; then
	eval `/usr/libexec/path_helper -s`
fi

displayMessage()
{
	/usr/bin/osascript > /dev/null <<-EOF
tell application "System Events"
	activate
	display dialog "$@" buttons {"Ok"}
end tell
EOF
}

#Testing for python2.7, which we need and is not always installed on MacOS 1.6
PY="python2.7"
$PY -c ''
if [ $? != 0 ]; then
	displayMessage "Python 2.7 is missing from your system. Cura requires Python2.7.\nStarting the installer" $PATH
	# Install python2.7
	hdiutil attach $PKGDIR/python-2.7.3-macosx10.6.dmg
	open -W /Volumes/Python\ 2.7.3/Python.mpkg
	hdiutil detach /Volumes/Python\ 2.7.3
	# Check the installation
	$PY -c ''
	if [ $? != 0 ]; then
		displayMessage "Failed to install python2.7"
		exit 1
	fi
fi

#Next check for numpy, numpy does not always run under 64bit, so we need to check if we need to use "arch -i386"
$PY -c 'import numpy' 2> /dev/null
if [ $? != 0 ]; then
	PY="arch -i386 python2.7"
	$PY -c 'import numpy'
	if [ $? != 0 ]; then
		displayMessage "Numpy is missing from your system, this is required.\nStarting the installer"
		# Install numpy
		hdiutil attach $PKGDIR/numpy-1.6.2-py2.7-python.org-macosx10.3.dmg
		open -W /Volumes/numpy/numpy-1.6.2-py2.7.mpkg
		hdiutil detach /Volumes/numpy
		#After installing numpy, we need to check if we need to use arch -386 again
		PY="python2.7"
		$PY -c 'import numpy'
		if [ $? != 0 ]; then
			PY="arch -i386 python2.7"
			$PY -c 'import numpy'
			if [ $? != 0 ]; then
				displayMessage "Failed to install numpy."
				exit 1
			fi
		fi
	fi
fi

#Check for wxPython
$PY -c 'import wx'
if [ $? != 0 ]; then
	displayMessage "wxPython is missing from your system. Cura requires wxPython.\nStarting the installer"
	# Start wxPython installer
	hdiutil attach $PKGDIR/wxPython2.9-osx-2.9.4.0-cocoa-py2.7.dmg
	open -W /Volumes/wxPython2.9-osx-2.9.4.0-cocoa-py2.7/wxPython2.9-osx-cocoa-py2.7.pkg
	hdiutil detach /Volumes/wxPython2.9-osx-2.9.4.0-cocoa-py2.7
	#Check if wxPython is installed correctly
	$PY -c 'import wx'
	if [ $? != 0 ]; then
		displayMessage "Failed to properly install wxPython."
		exit 1
	fi
fi

#Check for PyOpenGL
$PY -c 'import OpenGL'
if [ $? != 0 ]; then
	# Unpackage PyOpenGL
	if [ ! -d "$PKGDIR/PyOpenGL-3.0.2/build/lib" ]; then
		cd $PKGDIR
		tar -xzf PyOpenGL-3.0.2.tar.gz
		cd PyOpenGL-3.0.2
		$PY setup.py build
	fi
	export PYTHONPATH="$PYTHONPATH:$PKGDIR/PyOpenGL-3.0.2/build/lib"
	# Test if the installation was succesful
	echo $PYTHONPATH
	$PY -c 'import OpenGL'
	if [ $? != 0 ]; then
		displayMessage "Failed to properly use PyOpenGL."
		exit 1
	fi
fi

#Check for pyserial
$PY -c 'import serial'
if [ $? != 0 ]; then
	#Unpackage PySerial
	if [ ! -d "$PKGDIR/pyserial-2.6/build/lib" ]; then
		cd $PKGDIR
		tar -xzf pyserial-2.6.tar.gz
		cd pyserial-2.6
		$PY setup.py build
	fi
	export PYTHONPATH="$PYTHONPATH:$PKGDIR/pyserial-2.6/build/lib"

	#Test if we have pyserial now
	$PY -c 'import serial'
	if [ $? != 0 ]; then
		displayMessage "Failed to properly use PySerial."
		exit 1
	fi
fi

#All checks passed, start Cura
$PY "${RESDIR}Cura/cura.py" &
sleep 1

exit 0
