18ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar#!/usr/bin/env bash 28ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 38ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar############################################################################## 48ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar## 58ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar## Gradle start up script for UN*X 68ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar## 78ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar############################################################################## 88ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 98ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 108ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit BoyarDEFAULT_JVM_OPTS="" 118ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 128ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit BoyarAPP_NAME="Gradle" 138ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit BoyarAPP_BASE_NAME=`basename "$0"` 148ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 158ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar# Use the maximum available, or set MAX_FD != -1 to use that value. 168ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit BoyarMAX_FD="maximum" 178ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 188ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarwarn ( ) { 198ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar echo "$*" 208ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar} 218ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 228ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyardie ( ) { 238ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar echo 248ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar echo "$*" 258ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar echo 268ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar exit 1 278ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar} 288ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 298ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar# OS specific support (must be 'true' or 'false'). 308ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarcygwin=false 318ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarmsys=false 328ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyardarwin=false 338ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarcase "`uname`" in 348ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar CYGWIN* ) 358ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar cygwin=true 368ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar ;; 378ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar Darwin* ) 388ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar darwin=true 398ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar ;; 408ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar MINGW* ) 418ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar msys=true 428ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar ;; 438ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyaresac 448ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 458ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar# For Cygwin, ensure paths are in UNIX format before anything is touched. 468ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarif $cygwin ; then 478ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 488ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarfi 498ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 508ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar# Attempt to set APP_HOME 518ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar# Resolve links: $0 may be a link 528ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit BoyarPRG="$0" 538ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar# Need this for relative symlinks. 548ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarwhile [ -h "$PRG" ] ; do 558ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar ls=`ls -ld "$PRG"` 568ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar link=`expr "$ls" : '.*-> \(.*\)$'` 578ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar if expr "$link" : '/.*' > /dev/null; then 588ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar PRG="$link" 598ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar else 608ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar PRG=`dirname "$PRG"`"/$link" 618ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar fi 628ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyardone 638ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit BoyarSAVED="`pwd`" 648ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarcd "`dirname \"$PRG\"`/" >&- 658ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit BoyarAPP_HOME="`pwd -P`" 668ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarcd "$SAVED" >&- 678ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 688ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit BoyarCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 698ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 708ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar# Determine the Java command to use to start the JVM. 718ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarif [ -n "$JAVA_HOME" ] ; then 728ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 738ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar # IBM's JDK on AIX uses strange locations for the executables 748ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar JAVACMD="$JAVA_HOME/jre/sh/java" 758ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar else 768ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar JAVACMD="$JAVA_HOME/bin/java" 778ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar fi 788ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar if [ ! -x "$JAVACMD" ] ; then 798ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 808ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 818ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit BoyarPlease set the JAVA_HOME variable in your environment to match the 828ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarlocation of your Java installation." 838ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar fi 848ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarelse 858ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar JAVACMD="java" 868ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 878ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 888ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit BoyarPlease set the JAVA_HOME variable in your environment to match the 898ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarlocation of your Java installation." 908ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarfi 918ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 928ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar# Increase the maximum file descriptors if we can. 938ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarif [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 948ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar MAX_FD_LIMIT=`ulimit -H -n` 958ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar if [ $? -eq 0 ] ; then 968ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 978ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar MAX_FD="$MAX_FD_LIMIT" 988ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar fi 998ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar ulimit -n $MAX_FD 1008ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar if [ $? -ne 0 ] ; then 1018ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar warn "Could not set maximum file descriptor limit: $MAX_FD" 1028ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar fi 1038ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar else 1048ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 1058ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar fi 1068ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarfi 1078ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 1088ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar# For Darwin, add options to specify how the application appears in the dock 1098ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarif $darwin; then 1108ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 1118ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarfi 1128ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 1138ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar# For Cygwin, switch paths to Windows format before running java 1148ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarif $cygwin ; then 1158ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar APP_HOME=`cygpath --path --mixed "$APP_HOME"` 1168ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 1178ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 1188ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar # We build the pattern for arguments to be converted via cygpath 1198ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 1208ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar SEP="" 1218ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar for dir in $ROOTDIRSRAW ; do 1228ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar ROOTDIRS="$ROOTDIRS$SEP$dir" 1238ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar SEP="|" 1248ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar done 1258ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar OURCYGPATTERN="(^($ROOTDIRS))" 1268ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar # Add a user-defined pattern to the cygpath arguments 1278ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar if [ "$GRADLE_CYGPATTERN" != "" ] ; then 1288ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 1298ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar fi 1308ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar # Now convert the arguments - kludge to limit ourselves to /bin/sh 1318ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar i=0 1328ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar for arg in "$@" ; do 1338ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 1348ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 1358ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 1368ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 1378ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 1388ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar else 1398ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar eval `echo args$i`="\"$arg\"" 1408ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar fi 1418ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar i=$((i+1)) 1428ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar done 1438ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar case $i in 1448ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar (0) set -- ;; 1458ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar (1) set -- "$args0" ;; 1468ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar (2) set -- "$args0" "$args1" ;; 1478ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar (3) set -- "$args0" "$args1" "$args2" ;; 1488ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 1498ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 1508ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 1518ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 1528ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 1538ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 1548ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar esac 1558ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarfi 1568ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 1578ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 1588ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarfunction splitJvmOpts() { 1598ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar JVM_OPTS=("$@") 1608ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar} 1618ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyareval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 1628ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit BoyarJVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 1638ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyar 1648ffce57a6056a34c9568ef1893d6e36ce80f2245Yigit Boyarexec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 165