summaryrefslogtreecommitdiff
blob: 225f4a332cff07c0ec9c1f479f91728488625351 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash

WD="`pwd`"  #store the current working directory, where this script was called from.

#BehaviorSearch needs to start in the NetLogo base folder,
# and "behaviorsearch" must be installed in a subfolder of the NetLogo folder.
NETLOGO_DIR="$( dirname $( readlink -f "$0" ))" # the copious quoting is for handling paths with spaces
cd "$NETLOGO_DIR"
NETLOGO_DIR="`pwd`"  #in case it's a relative path, like "."
LIBRARY_DIR="${NETLOGO_DIR}/app"
BSEARCH_DIR="${LIBRARY_DIR}/behaviorsearch"

JARS=""
for f in `ls -1 "$LIBRARY_DIR" | grep "jar"`; do
  JARS="$LIBRARY_DIR/$f:$JARS"
done

# If you want to use a different version of java, or if "java" is not in your PATH, 
# you can run this script with the BSEARCH_JAVA environment variable pointing 
# to the java executable you want to use. e.g. "/opt/java6/bin/java"
if [ -z "$BSEARCH_JAVA" ]; then 
	BSEARCH_JAVA="java"
fi

JAVA_VERSION=`"$BSEARCH_JAVA" -version 2>&1 | head -n1 | awk '{ print substr($3,2,3) }' | sed -e 's;\.;0;g'`
if [ $JAVA_VERSION -lt 108 ]; then  #108 = java 1.8
	echo "Sorry, this program requires Java Runtime Environment 1.8 or higher"
	exit 1
fi

# If you have enough RAM, up the '1536m' below to '2048m' or more.
# Or you can set the BSEARCH_MAXMEM environment variable when running the script
# More RAM is especially helpful for multiple threads/parallel execution.
if [ -z "$BSEARCH_MAXMEM" ]; then
    BSEARCH_MAXMEM=1536m
fi

"$BSEARCH_JAVA" -Dbsearch.startupfolder="$WD" -Dbsearch.appfolder="$BSEARCH_DIR" -server -Xms256m "-Xmx$BSEARCH_MAXMEM" -classpath "$JARS" bsearch.app.BehaviorSearch "$@"