1669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd#!/usr/bin/env bash 2669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 3669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd############################################################################## 4669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd## 5669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd## Gradle start up script for UN*X 6669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd## 7669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd############################################################################## 8669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 9669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 10669b218b9c2b3fe75607df5947e2d75a91c8d12fSam JuddDEFAULT_JVM_OPTS="" 11669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 12669b218b9c2b3fe75607df5947e2d75a91c8d12fSam JuddAPP_NAME="Gradle" 13669b218b9c2b3fe75607df5947e2d75a91c8d12fSam JuddAPP_BASE_NAME=`basename "$0"` 14669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 15669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd# Use the maximum available, or set MAX_FD != -1 to use that value. 16669b218b9c2b3fe75607df5947e2d75a91c8d12fSam JuddMAX_FD="maximum" 17669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 18669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddwarn ( ) { 19669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd echo "$*" 20669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd} 21669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 22669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judddie ( ) { 23669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd echo 24669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd echo "$*" 25669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd echo 26669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd exit 1 27669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd} 28669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 29669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd# OS specific support (must be 'true' or 'false'). 30669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddcygwin=false 31669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddmsys=false 32669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judddarwin=false 33669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddcase "`uname`" in 34669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd CYGWIN* ) 35669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd cygwin=true 36669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd ;; 37669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd Darwin* ) 38669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd darwin=true 39669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd ;; 40669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd MINGW* ) 41669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd msys=true 42669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd ;; 43669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddesac 44669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 45669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd# For Cygwin, ensure paths are in UNIX format before anything is touched. 46669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddif $cygwin ; then 47669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 48669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddfi 49669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 50669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd# Attempt to set APP_HOME 51669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd# Resolve links: $0 may be a link 52669b218b9c2b3fe75607df5947e2d75a91c8d12fSam JuddPRG="$0" 53669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd# Need this for relative symlinks. 54669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddwhile [ -h "$PRG" ] ; do 55669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd ls=`ls -ld "$PRG"` 56669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd link=`expr "$ls" : '.*-> \(.*\)$'` 57669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd if expr "$link" : '/.*' > /dev/null; then 58669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd PRG="$link" 59669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd else 60669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd PRG=`dirname "$PRG"`"/$link" 61669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd fi 62669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judddone 63669b218b9c2b3fe75607df5947e2d75a91c8d12fSam JuddSAVED="`pwd`" 64669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddcd "`dirname \"$PRG\"`/" >&- 65669b218b9c2b3fe75607df5947e2d75a91c8d12fSam JuddAPP_HOME="`pwd -P`" 66669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddcd "$SAVED" >&- 67669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 68669b218b9c2b3fe75607df5947e2d75a91c8d12fSam JuddCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 69669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 70669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd# Determine the Java command to use to start the JVM. 71669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddif [ -n "$JAVA_HOME" ] ; then 72669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 73669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd # IBM's JDK on AIX uses strange locations for the executables 74669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd JAVACMD="$JAVA_HOME/jre/sh/java" 75669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd else 76669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd JAVACMD="$JAVA_HOME/bin/java" 77669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd fi 78669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd if [ ! -x "$JAVACMD" ] ; then 79669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 80669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 81669b218b9c2b3fe75607df5947e2d75a91c8d12fSam JuddPlease set the JAVA_HOME variable in your environment to match the 82669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddlocation of your Java installation." 83669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd fi 84669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddelse 85669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd JAVACMD="java" 86669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 87669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 88669b218b9c2b3fe75607df5947e2d75a91c8d12fSam JuddPlease set the JAVA_HOME variable in your environment to match the 89669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddlocation of your Java installation." 90669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddfi 91669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 92669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd# Increase the maximum file descriptors if we can. 93669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddif [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 94669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd MAX_FD_LIMIT=`ulimit -H -n` 95669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd if [ $? -eq 0 ] ; then 96669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 97669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd MAX_FD="$MAX_FD_LIMIT" 98669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd fi 99669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd ulimit -n $MAX_FD 100669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd if [ $? -ne 0 ] ; then 101669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd warn "Could not set maximum file descriptor limit: $MAX_FD" 102669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd fi 103669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd else 104669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 105669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd fi 106669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddfi 107669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 108669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd# For Darwin, add options to specify how the application appears in the dock 109669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddif $darwin; then 110669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 111669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddfi 112669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 113669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd# For Cygwin, switch paths to Windows format before running java 114669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddif $cygwin ; then 115669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd APP_HOME=`cygpath --path --mixed "$APP_HOME"` 116669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 117669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 118669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd # We build the pattern for arguments to be converted via cygpath 119669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 120669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd SEP="" 121669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd for dir in $ROOTDIRSRAW ; do 122669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd ROOTDIRS="$ROOTDIRS$SEP$dir" 123669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd SEP="|" 124669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd done 125669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd OURCYGPATTERN="(^($ROOTDIRS))" 126669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd # Add a user-defined pattern to the cygpath arguments 127669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd if [ "$GRADLE_CYGPATTERN" != "" ] ; then 128669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 129669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd fi 130669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd # Now convert the arguments - kludge to limit ourselves to /bin/sh 131669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd i=0 132669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd for arg in "$@" ; do 133669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 134669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 135669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 136669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 137669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 138669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd else 139669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd eval `echo args$i`="\"$arg\"" 140669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd fi 141669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd i=$((i+1)) 142669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd done 143669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd case $i in 144669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd (0) set -- ;; 145669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd (1) set -- "$args0" ;; 146669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd (2) set -- "$args0" "$args1" ;; 147669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd (3) set -- "$args0" "$args1" "$args2" ;; 148669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 149669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 150669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 151669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 152669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 153669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 154669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd esac 155669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddfi 156669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 157669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 158669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddfunction splitJvmOpts() { 159669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd JVM_OPTS=("$@") 160669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd} 161669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddeval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 162669b218b9c2b3fe75607df5947e2d75a91c8d12fSam JuddJVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 163669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Judd 164669b218b9c2b3fe75607df5947e2d75a91c8d12fSam Juddexec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 165