#!/bin/bash
# Engine Startup Script
#
# Smedge 3
# Copyright (c) 2004 - 2010 Uberware. All rights reserved.


if [ ! "$SMEDGE_BIN" ]; then
	# find the actual excutable

	# convert to absolute path
	case $0 in
		/*) exe=$0 ;;
		*) exe=`pwd`/$0 ;;
	esac

	echo Absolute folder: $exe >> ./_smedge3_startup.log

	# follow symlinks
	while [ -h $exe ]; do
		echo Symlink: $exe >> ./_smedge3_startup.log

		tgt=`ls -l $exe | tr ' ' '\012' | tail -1`
		echo ... Target: $tgt >> ./_smedge3_startup.log

		# check if the symlink is relative
		case $tgt in
		/*)	echo ... not detected as relative >> ./_smedge3_startup.log 
			exe=$tgt
			;;
		*)	echo ... detected as relative symlink >> ./_smedge3_startup.log
			dir=`dirname $exe`
			echo ... Got parent dir $dir from $exe >> ./_smedge3_startup.log
			exe=$dir/$tgt
			;;
		esac
	done

	# check for a required library file
	check_dir=`dirname $exe`
	check_fil=libR.so
	if [ -e $check_dir/$check_fil ]; then
		SMEDGE_BIN=$check_dir
	else
		echo Smedge is not installed correctly on this machine
		echo Missing $check_dir/$check_fil
		exit 1
	fi
	export SMEDGE_BIN

	rm -f ./_smedge3_startup.log
fi

# add the Smedge folder to the LD_LIBRARY_PATH
if [ "$LD_LIBRARY_PATH" ]; then
	LD_LIBRARY_PATH="$SMEDGE_BIN:$LD_LIBRARY_PATH"
else
	LD_LIBRARY_PATH=$SMEDGE_BIN
fi
export LD_LIBRARY_PATH

# ensure there is a SMEDGE_MODULES
if [ "$SMEDGE_MODULES" ]; then
	SMEDGE_MODULES="$SMEDGE_MODULES;$SMEDGE_BIN/Modules"
else
	SMEDGE_MODULES="$SMEDGE_BIN/Modules"
fi
export SMEDGE_MODULES

args=''
debug=''
while [ $# != 0 ]; do
	if [ "$1" = '-dbg' ]; then
		debug='gdb'
	else
		args="$args '$1'"
	fi
	shift 1
done

if [ -z $debug ]; then
	eval exec $SMEDGE_BIN/Engine.bin $args
else
	eval exec $debug $args $SMEDGE_BIN/Engine.bin
fi
