163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar#!/usr/bin/env bash 263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar############################################################################## 463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar## 563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar## Gradle start up script for UN*X 663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar## 763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar############################################################################## 863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 1063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit BoyarDEFAULT_JVM_OPTS="" 1163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 1263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit BoyarAPP_NAME="Gradle" 1363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit BoyarAPP_BASE_NAME=`basename "$0"` 1463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 1563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar# Use the maximum available, or set MAX_FD != -1 to use that value. 1663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit BoyarMAX_FD="maximum" 1763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 1863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarwarn ( ) { 1963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar echo "$*" 2063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar} 2163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 2263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyardie ( ) { 2363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar echo 2463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar echo "$*" 2563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar echo 2663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar exit 1 2763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar} 2863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 2963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar# OS specific support (must be 'true' or 'false'). 3063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarcygwin=false 3163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarmsys=false 3263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyardarwin=false 3363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarcase "`uname`" in 3463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar CYGWIN* ) 3563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar cygwin=true 3663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar ;; 3763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar Darwin* ) 3863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar darwin=true 3963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar ;; 4063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar MINGW* ) 4163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar msys=true 4263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar ;; 4363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyaresac 4463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 4563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar# For Cygwin, ensure paths are in UNIX format before anything is touched. 4663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarif $cygwin ; then 4763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 4863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarfi 4963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 5063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar# Attempt to set APP_HOME 5163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar# Resolve links: $0 may be a link 5263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit BoyarPRG="$0" 5363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar# Need this for relative symlinks. 5463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarwhile [ -h "$PRG" ] ; do 5563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar ls=`ls -ld "$PRG"` 5663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar link=`expr "$ls" : '.*-> \(.*\)$'` 5763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar if expr "$link" : '/.*' > /dev/null; then 5863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar PRG="$link" 5963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar else 6063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar PRG=`dirname "$PRG"`"/$link" 6163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar fi 6263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyardone 6363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit BoyarSAVED="`pwd`" 6463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarcd "`dirname \"$PRG\"`/" >&- 6563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit BoyarAPP_HOME="`pwd -P`" 6663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarcd "$SAVED" >&- 6763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 6863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit BoyarCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 6963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 7063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar# Determine the Java command to use to start the JVM. 7163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarif [ -n "$JAVA_HOME" ] ; then 7263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 7363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar # IBM's JDK on AIX uses strange locations for the executables 7463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar JAVACMD="$JAVA_HOME/jre/sh/java" 7563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar else 7663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar JAVACMD="$JAVA_HOME/bin/java" 7763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar fi 7863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar if [ ! -x "$JAVACMD" ] ; then 7963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 8063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 8163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit BoyarPlease set the JAVA_HOME variable in your environment to match the 8263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarlocation of your Java installation." 8363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar fi 8463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarelse 8563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar JAVACMD="java" 8663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 8763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 8863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit BoyarPlease set the JAVA_HOME variable in your environment to match the 8963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarlocation of your Java installation." 9063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarfi 9163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 9263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar# Increase the maximum file descriptors if we can. 9363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarif [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 9463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar MAX_FD_LIMIT=`ulimit -H -n` 9563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar if [ $? -eq 0 ] ; then 9663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 9763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar MAX_FD="$MAX_FD_LIMIT" 9863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar fi 9963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar ulimit -n $MAX_FD 10063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar if [ $? -ne 0 ] ; then 10163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar warn "Could not set maximum file descriptor limit: $MAX_FD" 10263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar fi 10363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar else 10463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 10563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar fi 10663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarfi 10763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 10863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar# For Darwin, add options to specify how the application appears in the dock 10963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarif $darwin; then 11063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 11163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarfi 11263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 11363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar# For Cygwin, switch paths to Windows format before running java 11463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarif $cygwin ; then 11563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar APP_HOME=`cygpath --path --mixed "$APP_HOME"` 11663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 11763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 11863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar # We build the pattern for arguments to be converted via cygpath 11963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 12063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar SEP="" 12163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar for dir in $ROOTDIRSRAW ; do 12263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar ROOTDIRS="$ROOTDIRS$SEP$dir" 12363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar SEP="|" 12463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar done 12563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar OURCYGPATTERN="(^($ROOTDIRS))" 12663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar # Add a user-defined pattern to the cygpath arguments 12763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar if [ "$GRADLE_CYGPATTERN" != "" ] ; then 12863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 12963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar fi 13063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar # Now convert the arguments - kludge to limit ourselves to /bin/sh 13163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar i=0 13263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar for arg in "$@" ; do 13363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 13463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 13563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 13663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 13763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 13863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar else 13963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar eval `echo args$i`="\"$arg\"" 14063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar fi 14163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar i=$((i+1)) 14263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar done 14363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar case $i in 14463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar (0) set -- ;; 14563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar (1) set -- "$args0" ;; 14663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar (2) set -- "$args0" "$args1" ;; 14763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar (3) set -- "$args0" "$args1" "$args2" ;; 14863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 14963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 15063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 15163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 15263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 15363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 15463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar esac 15563d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarfi 15663d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 15763d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 15863d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarfunction splitJvmOpts() { 15963d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar JVM_OPTS=("$@") 16063d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar} 16163d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyareval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 16263d478953393b1a2ea3b68d298b1d5fc64542e7bYigit BoyarJVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 16363d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyar 16463d478953393b1a2ea3b68d298b1d5fc64542e7bYigit Boyarexec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 165