#!/bin/sh

three=3072
twohalf=2560
two=2048
onehalf=1536
one=1024
half=512

function runjava {
echo "running application with $1M of memory"
r=`java -jar -Xmx$1m -Xms$1m -XX:+UseParallelGC \
GenotypeChecker-1.005-jar-with-dependencies.jar 2>/dev/null`
if [ $? -eq 1 ]
	then
	lessmemory=`expr $1 - $half`
	if [ $lessmemory -gt 511 ]
		then
		runjava $lessmemory
		else
		exit
	fi
fi
exit
}

memory=`vm_stat | awk -F': +' ' BEGIN {size = 4096; total = 0}; /page size of ([0-9]+)/ { if (match($0, "[0-9]+")) { size = substr($0, RSTART, RLENGTH)}} ; /( active:| free:| wired down:| inactive:)/ {total += $2}; END {print int((total * size) / (1024 * 1024))}'`

echo "memory is $memory MB"

if [ $memory -gt 3500 ]
	then runjava $three
	else if [ $memory -gt 3000 ]
		then runjava $twohalf
		else if [ $memory -gt 2500 ]
			then runjava $two
			else if [ $memory -gt 2000 ]
				then runjava $onehalf
				else if [ $memory -gt 1500 ]
					then runjava $one
					else
					     runjava $half
			 	fi
			fi
		fi
	fi
fi


