gradlew revision 24bec1cc542de69e0e21cc774469f20d34811ad9
16e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein#!/usr/bin/env bash 26e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 36e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein############################################################################## 46e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein## 56e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein## Gradle start up script for UN*X 66e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein## 76e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein############################################################################## 86e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 96e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 106e896f805cac499b777c98755149f07ccd7ba5c3Sam BlitzsteinDEFAULT_JVM_OPTS="" 116e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 126e896f805cac499b777c98755149f07ccd7ba5c3Sam BlitzsteinAPP_NAME="Gradle" 136e896f805cac499b777c98755149f07ccd7ba5c3Sam BlitzsteinAPP_BASE_NAME=`basename "$0"` 146e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 156e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein# Use the maximum available, or set MAX_FD != -1 to use that value. 166e896f805cac499b777c98755149f07ccd7ba5c3Sam BlitzsteinMAX_FD="maximum" 17b8f95646fc0510eebfeaa27864023d630f34090fSam Blitzstein 186e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteinwarn ( ) { 196e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein echo "$*" 206e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein} 216e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 226e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteindie ( ) { 236e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein echo 246e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein echo "$*" 256e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein echo 266e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein exit 1 276e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein} 286e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 291f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein# OS specific support (must be 'true' or 'false'). 306e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteincygwin=false 31b8f95646fc0510eebfeaa27864023d630f34090fSam Blitzsteinmsys=false 32b8f95646fc0510eebfeaa27864023d630f34090fSam Blitzsteindarwin=false 33f3b38bd61d583d31200c501f5a74392aac510657Sam Blitzsteincase "`uname`" in 34f3b38bd61d583d31200c501f5a74392aac510657Sam Blitzstein CYGWIN* ) 35f3b38bd61d583d31200c501f5a74392aac510657Sam Blitzstein cygwin=true 366e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein ;; 376e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein Darwin* ) 386e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein darwin=true 391f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein ;; 401f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein MINGW* ) 411f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein msys=true 42d5ec70d18c6379015acd4725b8804ab79f30bfa0Sam Blitzstein ;; 436e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteinesac 441f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein 451f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein# For Cygwin, ensure paths are in UNIX format before anything is touched. 46f3b38bd61d583d31200c501f5a74392aac510657Sam Blitzsteinif $cygwin ; then 471f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 486e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteinfi 496e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 506e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein# Attempt to set APP_HOME 516e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein# Resolve links: $0 may be a link 526e896f805cac499b777c98755149f07ccd7ba5c3Sam BlitzsteinPRG="$0" 536e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein# Need this for relative symlinks. 546e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteinwhile [ -h "$PRG" ] ; do 556e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein ls=`ls -ld "$PRG"` 566e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein link=`expr "$ls" : '.*-> \(.*\)$'` 576e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein if expr "$link" : '/.*' > /dev/null; then 586e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein PRG="$link" 596e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein else 606e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein PRG=`dirname "$PRG"`"/$link" 616e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein fi 626e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteindone 636e896f805cac499b777c98755149f07ccd7ba5c3Sam BlitzsteinSAVED="`pwd`" 646e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteincd "`dirname \"$PRG\"`/" >&- 656e896f805cac499b777c98755149f07ccd7ba5c3Sam BlitzsteinAPP_HOME="`pwd -P`" 666e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteincd "$SAVED" >&- 676e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 686e896f805cac499b777c98755149f07ccd7ba5c3Sam BlitzsteinCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 696e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 706e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein# Determine the Java command to use to start the JVM. 716e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteinif [ -n "$JAVA_HOME" ] ; then 726e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 736e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein # IBM's JDK on AIX uses strange locations for the executables 746e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein JAVACMD="$JAVA_HOME/jre/sh/java" 756e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein else 766e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein JAVACMD="$JAVA_HOME/bin/java" 77a09b3c940e98b8606a16a94b48b6d0121d9d3635Scott Kennedy fi 781f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein if [ ! -x "$JAVACMD" ] ; then 79f3b38bd61d583d31200c501f5a74392aac510657Sam Blitzstein die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 801f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein 813d5a23b698cb8c59f43914ea2f9bb4fb36575f88Sam BlitzsteinPlease set the JAVA_HOME variable in your environment to match the 823d5a23b698cb8c59f43914ea2f9bb4fb36575f88Sam Blitzsteinlocation of your Java installation." 836e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein fi 846e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteinelse 856e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein JAVACMD="java" 866e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 876e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 886e896f805cac499b777c98755149f07ccd7ba5c3Sam BlitzsteinPlease set the JAVA_HOME variable in your environment to match the 896e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteinlocation of your Java installation." 906e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteinfi 91b8f95646fc0510eebfeaa27864023d630f34090fSam Blitzstein 92b8f95646fc0510eebfeaa27864023d630f34090fSam Blitzstein# Increase the maximum file descriptors if we can. 93b8f95646fc0510eebfeaa27864023d630f34090fSam Blitzsteinif [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 946e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein MAX_FD_LIMIT=`ulimit -H -n` 956e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein if [ $? -eq 0 ] ; then 966e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 976e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein MAX_FD="$MAX_FD_LIMIT" 986e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein fi 996e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein ulimit -n $MAX_FD 1006e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein if [ $? -ne 0 ] ; then 1011f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein warn "Could not set maximum file descriptor limit: $MAX_FD" 1021f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein fi 1031f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein else 1041f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 1051f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein fi 106a09b3c940e98b8606a16a94b48b6d0121d9d3635Scott Kennedyfi 1071f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein 1081f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein# For Darwin, add options to specify how the application appears in the dock 109a09b3c940e98b8606a16a94b48b6d0121d9d3635Scott Kennedyif $darwin; then 1101f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 1111f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzsteinfi 1121f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein 1131f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein# For Cygwin, switch paths to Windows format before running java 1141f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzsteinif $cygwin ; then 1151f129e23db2dc5837a856f7734b15a5a8be6be94Sam Blitzstein APP_HOME=`cygpath --path --mixed "$APP_HOME"` 1166e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 1176e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 1186e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein # We build the pattern for arguments to be converted via cygpath 1196e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 1206e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein SEP="" 1216e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein for dir in $ROOTDIRSRAW ; do 1226e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein ROOTDIRS="$ROOTDIRS$SEP$dir" 1236e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein SEP="|" 124f3b38bd61d583d31200c501f5a74392aac510657Sam Blitzstein done 125f3b38bd61d583d31200c501f5a74392aac510657Sam Blitzstein OURCYGPATTERN="(^($ROOTDIRS))" 126f3b38bd61d583d31200c501f5a74392aac510657Sam Blitzstein # Add a user-defined pattern to the cygpath arguments 1276e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein if [ "$GRADLE_CYGPATTERN" != "" ] ; then 1286e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 1296e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein fi 1306e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein # Now convert the arguments - kludge to limit ourselves to /bin/sh 1316e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein i=0 1326e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein for arg in "$@" ; do 1336e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 1346e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 1356e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 1366e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 1376e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 1386e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein else 1396e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein eval `echo args$i`="\"$arg\"" 1406e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein fi 1416e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein i=$((i+1)) 1426e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein done 1436e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein case $i in 1446e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein (0) set -- ;; 1456e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein (1) set -- "$args0" ;; 1466e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein (2) set -- "$args0" "$args1" ;; 1476e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein (3) set -- "$args0" "$args1" "$args2" ;; 1486e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 1496e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 1506e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 1516e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 1526e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 1536e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 1546e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein esac 1556e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteinfi 1566e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein 1576e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 1586e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteinfunction splitJvmOpts() { 1596e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein JVM_OPTS=("$@") 1606e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein} 1616e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteineval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 1626e896f805cac499b777c98755149f07ccd7ba5c3Sam BlitzsteinJVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 163d5ec70d18c6379015acd4725b8804ab79f30bfa0Sam Blitzstein 1646e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzsteinexec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 1656e896f805cac499b777c98755149f07ccd7ba5c3Sam Blitzstein