14e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson#!/usr/bin/env bash 24e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 34e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson############################################################################## 44e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson## 54e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson## Gradle start up script for UN*X 64e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson## 74e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson############################################################################## 84e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 94e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 104e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil ArfvidssonDEFAULT_JVM_OPTS="" 114e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 124e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil ArfvidssonAPP_NAME="Gradle" 134e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil ArfvidssonAPP_BASE_NAME=`basename "$0"` 144e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 154e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson# Use the maximum available, or set MAX_FD != -1 to use that value. 164e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil ArfvidssonMAX_FD="maximum" 174e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 184e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonwarn ( ) { 194e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson echo "$*" 204e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson} 214e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 224e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssondie ( ) { 234e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson echo 244e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson echo "$*" 254e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson echo 264e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson exit 1 274e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson} 284e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 294e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson# OS specific support (must be 'true' or 'false'). 304e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssoncygwin=false 314e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonmsys=false 324e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssondarwin=false 334e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssoncase "`uname`" in 344e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson CYGWIN* ) 354e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson cygwin=true 364e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson ;; 374e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson Darwin* ) 384e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson darwin=true 394e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson ;; 404e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson MINGW* ) 414e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson msys=true 424e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson ;; 434e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonesac 444e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 454e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson# For Cygwin, ensure paths are in UNIX format before anything is touched. 464e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonif $cygwin ; then 474e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 484e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonfi 494e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 504e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson# Attempt to set APP_HOME 514e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson# Resolve links: $0 may be a link 524e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil ArfvidssonPRG="$0" 534e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson# Need this for relative symlinks. 544e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonwhile [ -h "$PRG" ] ; do 554e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson ls=`ls -ld "$PRG"` 564e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson link=`expr "$ls" : '.*-> \(.*\)$'` 574e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson if expr "$link" : '/.*' > /dev/null; then 584e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson PRG="$link" 594e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson else 604e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson PRG=`dirname "$PRG"`"/$link" 614e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson fi 624e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssondone 634e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil ArfvidssonSAVED="`pwd`" 644e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssoncd "`dirname \"$PRG\"`/" >&- 654e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil ArfvidssonAPP_HOME="`pwd -P`" 664e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssoncd "$SAVED" >&- 674e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 684e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil ArfvidssonCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 694e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 704e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson# Determine the Java command to use to start the JVM. 714e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonif [ -n "$JAVA_HOME" ] ; then 724e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 734e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson # IBM's JDK on AIX uses strange locations for the executables 744e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson JAVACMD="$JAVA_HOME/jre/sh/java" 754e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson else 764e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson JAVACMD="$JAVA_HOME/bin/java" 774e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson fi 784e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson if [ ! -x "$JAVACMD" ] ; then 794e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 804e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 814e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil ArfvidssonPlease set the JAVA_HOME variable in your environment to match the 824e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonlocation of your Java installation." 834e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson fi 844e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonelse 854e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson JAVACMD="java" 864e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 874e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 884e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil ArfvidssonPlease set the JAVA_HOME variable in your environment to match the 894e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonlocation of your Java installation." 904e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonfi 914e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 924e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson# Increase the maximum file descriptors if we can. 934e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonif [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 944e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson MAX_FD_LIMIT=`ulimit -H -n` 954e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson if [ $? -eq 0 ] ; then 964e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 974e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson MAX_FD="$MAX_FD_LIMIT" 984e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson fi 994e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson ulimit -n $MAX_FD 1004e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson if [ $? -ne 0 ] ; then 1014e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson warn "Could not set maximum file descriptor limit: $MAX_FD" 1024e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson fi 1034e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson else 1044e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 1054e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson fi 1064e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonfi 1074e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 1084e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson# For Darwin, add options to specify how the application appears in the dock 1094e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonif $darwin; then 1104e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 1114e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonfi 1124e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 1134e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson# For Cygwin, switch paths to Windows format before running java 1144e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonif $cygwin ; then 1154e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson APP_HOME=`cygpath --path --mixed "$APP_HOME"` 1164e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 1174e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 1184e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson # We build the pattern for arguments to be converted via cygpath 1194e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 1204e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson SEP="" 1214e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson for dir in $ROOTDIRSRAW ; do 1224e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson ROOTDIRS="$ROOTDIRS$SEP$dir" 1234e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson SEP="|" 1244e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson done 1254e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson OURCYGPATTERN="(^($ROOTDIRS))" 1264e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson # Add a user-defined pattern to the cygpath arguments 1274e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson if [ "$GRADLE_CYGPATTERN" != "" ] ; then 1284e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 1294e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson fi 1304e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson # Now convert the arguments - kludge to limit ourselves to /bin/sh 1314e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson i=0 1324e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson for arg in "$@" ; do 1334e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 1344e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 1354e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 1364e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 1374e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 1384e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson else 1394e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson eval `echo args$i`="\"$arg\"" 1404e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson fi 1414e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson i=$((i+1)) 1424e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson done 1434e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson case $i in 1444e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson (0) set -- ;; 1454e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson (1) set -- "$args0" ;; 1464e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson (2) set -- "$args0" "$args1" ;; 1474e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson (3) set -- "$args0" "$args1" "$args2" ;; 1484e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 1494e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 1504e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 1514e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 1524e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 1534e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 1544e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson esac 1554e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonfi 1564e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 1574e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 1584e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonfunction splitJvmOpts() { 1594e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson JVM_OPTS=("$@") 1604e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson} 1614e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssoneval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 1624e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil ArfvidssonJVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 1634e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidsson 1644e3f6162369c45d9fc1d2c9049452236bbb77ffdEmil Arfvidssonexec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 165