173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia#!/usr/bin/env bash 273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia############################################################################## 473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia## 573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia## Gradle start up script for UN*X 673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia## 773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia############################################################################## 873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 1073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo GarciaDEFAULT_JVM_OPTS="" 1173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 1273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo GarciaAPP_NAME="Gradle" 1373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo GarciaAPP_BASE_NAME=`basename "$0"` 1473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 1573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia# Use the maximum available, or set MAX_FD != -1 to use that value. 1673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo GarciaMAX_FD="maximum" 1773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 1873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciawarn ( ) { 1973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia echo "$*" 2073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia} 2173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 2273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciadie ( ) { 2373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia echo 2473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia echo "$*" 2573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia echo 2673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia exit 1 2773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia} 2873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 2973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia# OS specific support (must be 'true' or 'false'). 3073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciacygwin=false 3173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciamsys=false 3273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciadarwin=false 3373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciacase "`uname`" in 3473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia CYGWIN* ) 3573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia cygwin=true 3673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia ;; 3773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia Darwin* ) 3873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia darwin=true 3973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia ;; 4073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia MINGW* ) 4173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia msys=true 4273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia ;; 4373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciaesac 4473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 4573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia# For Cygwin, ensure paths are in UNIX format before anything is touched. 4673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciaif $cygwin ; then 4773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 4873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciafi 4973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 5073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia# Attempt to set APP_HOME 5173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia# Resolve links: $0 may be a link 5273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo GarciaPRG="$0" 5373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia# Need this for relative symlinks. 5473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciawhile [ -h "$PRG" ] ; do 5573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia ls=`ls -ld "$PRG"` 5673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia link=`expr "$ls" : '.*-> \(.*\)$'` 5773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia if expr "$link" : '/.*' > /dev/null; then 5873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia PRG="$link" 5973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia else 6073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia PRG=`dirname "$PRG"`"/$link" 6173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia fi 6273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciadone 6373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo GarciaSAVED="`pwd`" 6473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciacd "`dirname \"$PRG\"`/" >&- 6573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo GarciaAPP_HOME="`pwd -P`" 6673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciacd "$SAVED" >&- 6773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 6873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo GarciaCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 6973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 7073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia# Determine the Java command to use to start the JVM. 7173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciaif [ -n "$JAVA_HOME" ] ; then 7273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 7373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia # IBM's JDK on AIX uses strange locations for the executables 7473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia JAVACMD="$JAVA_HOME/jre/sh/java" 7573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia else 7673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia JAVACMD="$JAVA_HOME/bin/java" 7773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia fi 7873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia if [ ! -x "$JAVACMD" ] ; then 7973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 8073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 8173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo GarciaPlease set the JAVA_HOME variable in your environment to match the 8273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcialocation of your Java installation." 8373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia fi 8473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciaelse 8573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia JAVACMD="java" 8673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 8773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 8873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo GarciaPlease set the JAVA_HOME variable in your environment to match the 8973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcialocation of your Java installation." 9073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciafi 9173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 9273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia# Increase the maximum file descriptors if we can. 9373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciaif [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 9473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia MAX_FD_LIMIT=`ulimit -H -n` 9573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia if [ $? -eq 0 ] ; then 9673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 9773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia MAX_FD="$MAX_FD_LIMIT" 9873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia fi 9973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia ulimit -n $MAX_FD 10073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia if [ $? -ne 0 ] ; then 10173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia warn "Could not set maximum file descriptor limit: $MAX_FD" 10273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia fi 10373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia else 10473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 10573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia fi 10673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciafi 10773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 10873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia# For Darwin, add options to specify how the application appears in the dock 10973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciaif $darwin; then 11073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 11173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciafi 11273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 11373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia# For Cygwin, switch paths to Windows format before running java 11473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciaif $cygwin ; then 11573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia APP_HOME=`cygpath --path --mixed "$APP_HOME"` 11673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 11773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 11873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia # We build the pattern for arguments to be converted via cygpath 11973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 12073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia SEP="" 12173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia for dir in $ROOTDIRSRAW ; do 12273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia ROOTDIRS="$ROOTDIRS$SEP$dir" 12373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia SEP="|" 12473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia done 12573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia OURCYGPATTERN="(^($ROOTDIRS))" 12673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia # Add a user-defined pattern to the cygpath arguments 12773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia if [ "$GRADLE_CYGPATTERN" != "" ] ; then 12873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 12973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia fi 13073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia # Now convert the arguments - kludge to limit ourselves to /bin/sh 13173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia i=0 13273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia for arg in "$@" ; do 13373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 13473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 13573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 13673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 13773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 13873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia else 13973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia eval `echo args$i`="\"$arg\"" 14073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia fi 14173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia i=$((i+1)) 14273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia done 14373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia case $i in 14473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia (0) set -- ;; 14573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia (1) set -- "$args0" ;; 14673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia (2) set -- "$args0" "$args1" ;; 14773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia (3) set -- "$args0" "$args1" "$args2" ;; 14873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 14973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 15073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 15173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 15273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 15373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 15473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia esac 15573391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciafi 15673391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 15773391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 15873391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciafunction splitJvmOpts() { 15973391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia JVM_OPTS=("$@") 16073391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia} 16173391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciaeval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 16273391c7b0650f8b96d9976c0fe36a967900958c5Ricardo GarciaJVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 16373391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garcia 16473391c7b0650f8b96d9976c0fe36a967900958c5Ricardo Garciaexec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 165