#!/bin/sh

#
# Load configuration files
#

base_cfg="$0.params.cfg"
local_cfg="$0.params.local.cfg"

if [ ! -f $base_cfg ]; then
	base_cfg="asv.params.cfg"
fi

if [ ! -f $local_cfg ]; then
	local_cfg="asv.params.local.cfg"
fi

while IFS="=" read var val
do
	if [ -n "$val" ]
	then
		val=$(echo $val | tr -d '\r')
		eval $var='$val'
	fi
done < "$base_cfg"

if [ -f $local_cfg ]; then
	while IFS="=" read var val
	do
		if [ -n "$val" ]
		then
			val=$(echo $val | tr -d '\r')
			eval $var='$val'
		fi
	done < "$local_cfg"
fi


for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
do
	param='$'"JVM_P${i}"
	eval param=$param
	if [ -n "$param" ]; then
		cmd="${cmd} ${param}"
	fi
done

checkJREdir()
{
	jre=$PWD/$1
	echo "Search at $1"
	if [ -f "$jre/bin/java" ]; then
		version=$($jre/bin/java -version 2>&1 | awk '/version/{print $3}' | sed 's/[^0-9\.]//g')
		echo Java version: "$version"
		if echo $version | grep -Eq '(^1[1-9].*|^2.*)'; then
			return
		else
			echo Not supported java version
		fi
	fi

	jre=""
}

checkJRECfg()
{
	echo "Search at $1"
	if [ -f $1 ]; then
		jre=`head -n 1 $1 | sed -e 's/^[ 	]*//' -e 's/[ 	]*$//' -e 's/\r//'`

		if [ -n "$jre" ]; then
			if echo $jre | grep -Evq '^/'; then
				jre=$PWD/$jre;
			fi
			if [ -f "$jre/bin/java" ]; then
				version=$($jre/bin/java -version 2>&1 | awk '/version/{print $3}' | sed 's/[^0-9\.]//g')
				echo Java version: "$version"
				if echo $version | grep -Eq '(^1[1-9].*|^2.*)'; then
					return
				else
					echo Not supported java version
				fi
			fi
		fi
	fi

	jre=""
}

#
# Determine jre path
#

findJRE()
{
	local_jre_cfg=$1jre.local.cfg
	base_jre_cfg=$1jre.cfg
	local_jre_path=$1jre.local
	base_jre_path=$1jre

	checkJRECfg $local_jre_cfg
	if [ -n "$jre" ]; then
		return
	fi

	checkJREdir $local_jre_path
	if [ -n "$jre" ]; then
		return
	fi

	checkJRECfg $base_jre_cfg
	if [ -n "$jre" ]; then
		return
	fi

	checkJREdir $base_jre_path
	if [ -n "$jre" ]; then
		return
	fi
}

findJRE ''
#by ASVBY-28475
#if test -z "$jre"
#then
#	findJRE '../../'
#fi

if test -n "$jre"
then
  export JAVA_HOME=$jre
fi
if test -n "$JAVA_HOME"
then
  echo "Use java from $JAVA_HOME"
  PATH=$JAVA_HOME/bin:$PATH
fi


#
# Check jre version and run
#

if [ -x "$(command -v java)" ]; then
	version=$(java -version 2>&1 | awk '/version/{print $3}' | sed 's/[^0-9\.]//g')
	echo Java version: "$version"
	if echo $version | grep -Eq '(^1[1-9].*|^2.*)'; then
		eval "java $cmd -jar startup.jar"
	else
		echo "Mindestens eine notwendige Systemvoraussetzung zum Start der Anwendung ist nicht erfüllt. Bitte setzen Sie sich mit dem zuständigen Systembetreuer in Verbindung. \nFehlgeschlagene Prüfungen beim Start der Anwendung: \nASV benötigt eine JAVA-Runtime in der Version 11 oder höher."
	fi
else
	echo "Java ist nicht verfuegbar. Bitte ueberpruefen Sie die notwendigen Installationsvoraussetzungen."
fi

