194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver#!/usr/bin/env bash 294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver############################################################################## 494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver## 594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver## Gradle start up script for UN*X 694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver## 794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver############################################################################## 894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 1094599babbb437dd6bbd51d61dce42b57b71d88deBen GruverDEFAULT_JVM_OPTS="" 1194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 1294599babbb437dd6bbd51d61dce42b57b71d88deBen GruverAPP_NAME="Gradle" 1394599babbb437dd6bbd51d61dce42b57b71d88deBen GruverAPP_BASE_NAME=`basename "$0"` 1494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 1594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# Use the maximum available, or set MAX_FD != -1 to use that value. 1694599babbb437dd6bbd51d61dce42b57b71d88deBen GruverMAX_FD="maximum" 1794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 1894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverwarn ( ) { 1994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver echo "$*" 2094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver} 2194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 2294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverdie ( ) { 2394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver echo 2494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver echo "$*" 2594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver echo 2694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver exit 1 2794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver} 2894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 2994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# OS specific support (must be 'true' or 'false'). 3094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruvercygwin=false 3194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruvermsys=false 3294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverdarwin=false 3394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruvercase "`uname`" in 3494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver CYGWIN* ) 3594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver cygwin=true 3694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver ;; 3794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver Darwin* ) 3894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver darwin=true 3994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver ;; 4094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver MINGW* ) 4194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver msys=true 4294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver ;; 4394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruveresac 4494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 4594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# For Cygwin, ensure paths are in UNIX format before anything is touched. 4694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverif $cygwin ; then 4794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 4894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverfi 4994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 5094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# Attempt to set APP_HOME 5194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# Resolve links: $0 may be a link 5294599babbb437dd6bbd51d61dce42b57b71d88deBen GruverPRG="$0" 5394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# Need this for relative symlinks. 5494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverwhile [ -h "$PRG" ] ; do 5594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver ls=`ls -ld "$PRG"` 5694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver link=`expr "$ls" : '.*-> \(.*\)$'` 5794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver if expr "$link" : '/.*' > /dev/null; then 5894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver PRG="$link" 5994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver else 6094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver PRG=`dirname "$PRG"`"/$link" 6194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver fi 6294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverdone 6394599babbb437dd6bbd51d61dce42b57b71d88deBen GruverSAVED="`pwd`" 6494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruvercd "`dirname \"$PRG\"`/" 6594599babbb437dd6bbd51d61dce42b57b71d88deBen GruverAPP_HOME="`pwd -P`" 6694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruvercd "$SAVED" 6794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 6894599babbb437dd6bbd51d61dce42b57b71d88deBen GruverCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 6994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 7094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# Determine the Java command to use to start the JVM. 7194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverif [ -n "$JAVA_HOME" ] ; then 7294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 7394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver # IBM's JDK on AIX uses strange locations for the executables 7494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver JAVACMD="$JAVA_HOME/jre/sh/java" 7594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver else 7694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver JAVACMD="$JAVA_HOME/bin/java" 7794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver fi 7894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver if [ ! -x "$JAVACMD" ] ; then 7994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 8094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 8194599babbb437dd6bbd51d61dce42b57b71d88deBen GruverPlease set the JAVA_HOME variable in your environment to match the 8294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverlocation of your Java installation." 8394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver fi 8494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverelse 8594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver JAVACMD="java" 8694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 8794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 8894599babbb437dd6bbd51d61dce42b57b71d88deBen GruverPlease set the JAVA_HOME variable in your environment to match the 8994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverlocation of your Java installation." 9094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverfi 9194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 9294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# Increase the maximum file descriptors if we can. 9394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverif [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 9494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver MAX_FD_LIMIT=`ulimit -H -n` 9594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver if [ $? -eq 0 ] ; then 9694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 9794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver MAX_FD="$MAX_FD_LIMIT" 9894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver fi 9994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver ulimit -n $MAX_FD 10094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver if [ $? -ne 0 ] ; then 10194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver warn "Could not set maximum file descriptor limit: $MAX_FD" 10294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver fi 10394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver else 10494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 10594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver fi 10694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverfi 10794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 10894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# For Darwin, add options to specify how the application appears in the dock 10994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverif $darwin; then 11094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 11194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverfi 11294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 11394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# For Cygwin, switch paths to Windows format before running java 11494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverif $cygwin ; then 11594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver APP_HOME=`cygpath --path --mixed "$APP_HOME"` 11694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 11794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 11894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver # We build the pattern for arguments to be converted via cygpath 11994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 12094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver SEP="" 12194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver for dir in $ROOTDIRSRAW ; do 12294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver ROOTDIRS="$ROOTDIRS$SEP$dir" 12394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver SEP="|" 12494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver done 12594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver OURCYGPATTERN="(^($ROOTDIRS))" 12694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver # Add a user-defined pattern to the cygpath arguments 12794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver if [ "$GRADLE_CYGPATTERN" != "" ] ; then 12894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 12994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver fi 13094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver # Now convert the arguments - kludge to limit ourselves to /bin/sh 13194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver i=0 13294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver for arg in "$@" ; do 13394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 13494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 13594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 13694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 13794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 13894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver else 13994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver eval `echo args$i`="\"$arg\"" 14094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver fi 14194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver i=$((i+1)) 14294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver done 14394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver case $i in 14494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver (0) set -- ;; 14594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver (1) set -- "$args0" ;; 14694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver (2) set -- "$args0" "$args1" ;; 14794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver (3) set -- "$args0" "$args1" "$args2" ;; 14894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 14994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 15094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 15194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 15294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 15394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 15494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver esac 15594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverfi 15694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 15794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 15894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverfunction splitJvmOpts() { 15994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver JVM_OPTS=("$@") 16094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver} 16194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruvereval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 16294599babbb437dd6bbd51d61dce42b57b71d88deBen GruverJVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 16394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver 16494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverexec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 165