1a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar#!/usr/bin/env bash 2a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 3a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar############################################################################## 4a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar## 5a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar## Gradle start up script for UN*X 6a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar## 7a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar############################################################################## 8a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 9a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 10a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit BoyarDEFAULT_JVM_OPTS="" 11a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 12a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit BoyarAPP_NAME="Gradle" 13a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit BoyarAPP_BASE_NAME=`basename "$0"` 14a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 15a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar# Use the maximum available, or set MAX_FD != -1 to use that value. 16a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit BoyarMAX_FD="maximum" 17a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 18a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarwarn ( ) { 19a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar echo "$*" 20a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar} 21a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 22a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyardie ( ) { 23a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar echo 24a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar echo "$*" 25a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar echo 26a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar exit 1 27a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar} 28a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 29a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar# OS specific support (must be 'true' or 'false'). 30a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarcygwin=false 31a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarmsys=false 32a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyardarwin=false 33a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarcase "`uname`" in 34a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar CYGWIN* ) 35a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar cygwin=true 36a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar ;; 37a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar Darwin* ) 38a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar darwin=true 39a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar ;; 40a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar MINGW* ) 41a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar msys=true 42a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar ;; 43a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyaresac 44a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 45a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar# For Cygwin, ensure paths are in UNIX format before anything is touched. 46a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarif $cygwin ; then 47a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 48a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarfi 49a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 50a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar# Attempt to set APP_HOME 51a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar# Resolve links: $0 may be a link 52a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit BoyarPRG="$0" 53a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar# Need this for relative symlinks. 54a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarwhile [ -h "$PRG" ] ; do 55a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar ls=`ls -ld "$PRG"` 56a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar link=`expr "$ls" : '.*-> \(.*\)$'` 57a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar if expr "$link" : '/.*' > /dev/null; then 58a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar PRG="$link" 59a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar else 60a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar PRG=`dirname "$PRG"`"/$link" 61a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar fi 62a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyardone 63a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit BoyarSAVED="`pwd`" 64a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarcd "`dirname \"$PRG\"`/" >&- 65a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit BoyarAPP_HOME="`pwd -P`" 66a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarcd "$SAVED" >&- 67a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 68a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit BoyarCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 69a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 70a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar# Determine the Java command to use to start the JVM. 71a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarif [ -n "$JAVA_HOME" ] ; then 72a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 73a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar # IBM's JDK on AIX uses strange locations for the executables 74a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar JAVACMD="$JAVA_HOME/jre/sh/java" 75a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar else 76a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar JAVACMD="$JAVA_HOME/bin/java" 77a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar fi 78a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar if [ ! -x "$JAVACMD" ] ; then 79a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 80a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 81a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit BoyarPlease set the JAVA_HOME variable in your environment to match the 82a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarlocation of your Java installation." 83a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar fi 84a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarelse 85a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar JAVACMD="java" 86a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 87a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 88a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit BoyarPlease set the JAVA_HOME variable in your environment to match the 89a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarlocation of your Java installation." 90a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarfi 91a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 92a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar# Increase the maximum file descriptors if we can. 93a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarif [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 94a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar MAX_FD_LIMIT=`ulimit -H -n` 95a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar if [ $? -eq 0 ] ; then 96a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 97a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar MAX_FD="$MAX_FD_LIMIT" 98a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar fi 99a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar ulimit -n $MAX_FD 100a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar if [ $? -ne 0 ] ; then 101a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar warn "Could not set maximum file descriptor limit: $MAX_FD" 102a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar fi 103a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar else 104a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 105a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar fi 106a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarfi 107a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 108a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar# For Darwin, add options to specify how the application appears in the dock 109a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarif $darwin; then 110a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 111a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarfi 112a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 113a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar# For Cygwin, switch paths to Windows format before running java 114a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarif $cygwin ; then 115a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar APP_HOME=`cygpath --path --mixed "$APP_HOME"` 116a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 117a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 118a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar # We build the pattern for arguments to be converted via cygpath 119a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 120a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar SEP="" 121a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar for dir in $ROOTDIRSRAW ; do 122a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar ROOTDIRS="$ROOTDIRS$SEP$dir" 123a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar SEP="|" 124a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar done 125a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar OURCYGPATTERN="(^($ROOTDIRS))" 126a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar # Add a user-defined pattern to the cygpath arguments 127a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar if [ "$GRADLE_CYGPATTERN" != "" ] ; then 128a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 129a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar fi 130a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar # Now convert the arguments - kludge to limit ourselves to /bin/sh 131a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar i=0 132a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar for arg in "$@" ; do 133a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 134a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 135a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 136a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 137a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 138a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar else 139a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar eval `echo args$i`="\"$arg\"" 140a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar fi 141a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar i=$((i+1)) 142a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar done 143a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar case $i in 144a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar (0) set -- ;; 145a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar (1) set -- "$args0" ;; 146a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar (2) set -- "$args0" "$args1" ;; 147a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar (3) set -- "$args0" "$args1" "$args2" ;; 148a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 149a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 150a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 151a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 152a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 153a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 154a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar esac 155a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarfi 156a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 157a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 158a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarfunction splitJvmOpts() { 159a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar JVM_OPTS=("$@") 160a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar} 161a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyareval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 162a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit BoyarJVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 163a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyar 164a6e4583962e19e8e93b4ca3f9fe3d34560b6d96cYigit Boyarexec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 165