1*a24ffb47SSadaf Ebrahimi#!/usr/bin/env sh 2*a24ffb47SSadaf Ebrahimi 3*a24ffb47SSadaf Ebrahimi############################################################################## 4*a24ffb47SSadaf Ebrahimi## 5*a24ffb47SSadaf Ebrahimi## Gradle start up script for UN*X 6*a24ffb47SSadaf Ebrahimi## 7*a24ffb47SSadaf Ebrahimi############################################################################## 8*a24ffb47SSadaf Ebrahimi 9*a24ffb47SSadaf Ebrahimi# Attempt to set APP_HOME 10*a24ffb47SSadaf Ebrahimi# Resolve links: $0 may be a link 11*a24ffb47SSadaf EbrahimiPRG="$0" 12*a24ffb47SSadaf Ebrahimi# Need this for relative symlinks. 13*a24ffb47SSadaf Ebrahimiwhile [ -h "$PRG" ] ; do 14*a24ffb47SSadaf Ebrahimi ls=`ls -ld "$PRG"` 15*a24ffb47SSadaf Ebrahimi link=`expr "$ls" : '.*-> \(.*\)$'` 16*a24ffb47SSadaf Ebrahimi if expr "$link" : '/.*' > /dev/null; then 17*a24ffb47SSadaf Ebrahimi PRG="$link" 18*a24ffb47SSadaf Ebrahimi else 19*a24ffb47SSadaf Ebrahimi PRG=`dirname "$PRG"`"/$link" 20*a24ffb47SSadaf Ebrahimi fi 21*a24ffb47SSadaf Ebrahimidone 22*a24ffb47SSadaf EbrahimiSAVED="`pwd`" 23*a24ffb47SSadaf Ebrahimicd "`dirname \"$PRG\"`/" >/dev/null 24*a24ffb47SSadaf EbrahimiAPP_HOME="`pwd -P`" 25*a24ffb47SSadaf Ebrahimicd "$SAVED" >/dev/null 26*a24ffb47SSadaf Ebrahimi 27*a24ffb47SSadaf EbrahimiAPP_NAME="Gradle" 28*a24ffb47SSadaf EbrahimiAPP_BASE_NAME=`basename "$0"` 29*a24ffb47SSadaf Ebrahimi 30*a24ffb47SSadaf Ebrahimi# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 31*a24ffb47SSadaf EbrahimiDEFAULT_JVM_OPTS="" 32*a24ffb47SSadaf Ebrahimi 33*a24ffb47SSadaf Ebrahimi# Use the maximum available, or set MAX_FD != -1 to use that value. 34*a24ffb47SSadaf EbrahimiMAX_FD="maximum" 35*a24ffb47SSadaf Ebrahimi 36*a24ffb47SSadaf Ebrahimiwarn () { 37*a24ffb47SSadaf Ebrahimi echo "$*" 38*a24ffb47SSadaf Ebrahimi} 39*a24ffb47SSadaf Ebrahimi 40*a24ffb47SSadaf Ebrahimidie () { 41*a24ffb47SSadaf Ebrahimi echo 42*a24ffb47SSadaf Ebrahimi echo "$*" 43*a24ffb47SSadaf Ebrahimi echo 44*a24ffb47SSadaf Ebrahimi exit 1 45*a24ffb47SSadaf Ebrahimi} 46*a24ffb47SSadaf Ebrahimi 47*a24ffb47SSadaf Ebrahimi# OS specific support (must be 'true' or 'false'). 48*a24ffb47SSadaf Ebrahimicygwin=false 49*a24ffb47SSadaf Ebrahimimsys=false 50*a24ffb47SSadaf Ebrahimidarwin=false 51*a24ffb47SSadaf Ebrahiminonstop=false 52*a24ffb47SSadaf Ebrahimicase "`uname`" in 53*a24ffb47SSadaf Ebrahimi CYGWIN* ) 54*a24ffb47SSadaf Ebrahimi cygwin=true 55*a24ffb47SSadaf Ebrahimi ;; 56*a24ffb47SSadaf Ebrahimi Darwin* ) 57*a24ffb47SSadaf Ebrahimi darwin=true 58*a24ffb47SSadaf Ebrahimi ;; 59*a24ffb47SSadaf Ebrahimi MINGW* ) 60*a24ffb47SSadaf Ebrahimi msys=true 61*a24ffb47SSadaf Ebrahimi ;; 62*a24ffb47SSadaf Ebrahimi NONSTOP* ) 63*a24ffb47SSadaf Ebrahimi nonstop=true 64*a24ffb47SSadaf Ebrahimi ;; 65*a24ffb47SSadaf Ebrahimiesac 66*a24ffb47SSadaf Ebrahimi 67*a24ffb47SSadaf EbrahimiCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 68*a24ffb47SSadaf Ebrahimi 69*a24ffb47SSadaf Ebrahimi# Determine the Java command to use to start the JVM. 70*a24ffb47SSadaf Ebrahimiif [ -n "$JAVA_HOME" ] ; then 71*a24ffb47SSadaf Ebrahimi if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 72*a24ffb47SSadaf Ebrahimi # IBM's JDK on AIX uses strange locations for the executables 73*a24ffb47SSadaf Ebrahimi JAVACMD="$JAVA_HOME/jre/sh/java" 74*a24ffb47SSadaf Ebrahimi else 75*a24ffb47SSadaf Ebrahimi JAVACMD="$JAVA_HOME/bin/java" 76*a24ffb47SSadaf Ebrahimi fi 77*a24ffb47SSadaf Ebrahimi if [ ! -x "$JAVACMD" ] ; then 78*a24ffb47SSadaf Ebrahimi die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 79*a24ffb47SSadaf Ebrahimi 80*a24ffb47SSadaf EbrahimiPlease set the JAVA_HOME variable in your environment to match the 81*a24ffb47SSadaf Ebrahimilocation of your Java installation." 82*a24ffb47SSadaf Ebrahimi fi 83*a24ffb47SSadaf Ebrahimielse 84*a24ffb47SSadaf Ebrahimi JAVACMD="java" 85*a24ffb47SSadaf Ebrahimi which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 86*a24ffb47SSadaf Ebrahimi 87*a24ffb47SSadaf EbrahimiPlease set the JAVA_HOME variable in your environment to match the 88*a24ffb47SSadaf Ebrahimilocation of your Java installation." 89*a24ffb47SSadaf Ebrahimifi 90*a24ffb47SSadaf Ebrahimi 91*a24ffb47SSadaf Ebrahimi# Increase the maximum file descriptors if we can. 92*a24ffb47SSadaf Ebrahimiif [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then 93*a24ffb47SSadaf Ebrahimi MAX_FD_LIMIT=`ulimit -H -n` 94*a24ffb47SSadaf Ebrahimi if [ $? -eq 0 ] ; then 95*a24ffb47SSadaf Ebrahimi if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 96*a24ffb47SSadaf Ebrahimi MAX_FD="$MAX_FD_LIMIT" 97*a24ffb47SSadaf Ebrahimi fi 98*a24ffb47SSadaf Ebrahimi ulimit -n $MAX_FD 99*a24ffb47SSadaf Ebrahimi if [ $? -ne 0 ] ; then 100*a24ffb47SSadaf Ebrahimi warn "Could not set maximum file descriptor limit: $MAX_FD" 101*a24ffb47SSadaf Ebrahimi fi 102*a24ffb47SSadaf Ebrahimi else 103*a24ffb47SSadaf Ebrahimi warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 104*a24ffb47SSadaf Ebrahimi fi 105*a24ffb47SSadaf Ebrahimifi 106*a24ffb47SSadaf Ebrahimi 107*a24ffb47SSadaf Ebrahimi# For Darwin, add options to specify how the application appears in the dock 108*a24ffb47SSadaf Ebrahimiif $darwin; then 109*a24ffb47SSadaf Ebrahimi GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 110*a24ffb47SSadaf Ebrahimifi 111*a24ffb47SSadaf Ebrahimi 112*a24ffb47SSadaf Ebrahimi# For Cygwin, switch paths to Windows format before running java 113*a24ffb47SSadaf Ebrahimiif $cygwin ; then 114*a24ffb47SSadaf Ebrahimi APP_HOME=`cygpath --path --mixed "$APP_HOME"` 115*a24ffb47SSadaf Ebrahimi CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 116*a24ffb47SSadaf Ebrahimi JAVACMD=`cygpath --unix "$JAVACMD"` 117*a24ffb47SSadaf Ebrahimi 118*a24ffb47SSadaf Ebrahimi # We build the pattern for arguments to be converted via cygpath 119*a24ffb47SSadaf Ebrahimi ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 120*a24ffb47SSadaf Ebrahimi SEP="" 121*a24ffb47SSadaf Ebrahimi for dir in $ROOTDIRSRAW ; do 122*a24ffb47SSadaf Ebrahimi ROOTDIRS="$ROOTDIRS$SEP$dir" 123*a24ffb47SSadaf Ebrahimi SEP="|" 124*a24ffb47SSadaf Ebrahimi done 125*a24ffb47SSadaf Ebrahimi OURCYGPATTERN="(^($ROOTDIRS))" 126*a24ffb47SSadaf Ebrahimi # Add a user-defined pattern to the cygpath arguments 127*a24ffb47SSadaf Ebrahimi if [ "$GRADLE_CYGPATTERN" != "" ] ; then 128*a24ffb47SSadaf Ebrahimi OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 129*a24ffb47SSadaf Ebrahimi fi 130*a24ffb47SSadaf Ebrahimi # Now convert the arguments - kludge to limit ourselves to /bin/sh 131*a24ffb47SSadaf Ebrahimi i=0 132*a24ffb47SSadaf Ebrahimi for arg in "$@" ; do 133*a24ffb47SSadaf Ebrahimi CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 134*a24ffb47SSadaf Ebrahimi CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 135*a24ffb47SSadaf Ebrahimi 136*a24ffb47SSadaf Ebrahimi if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 137*a24ffb47SSadaf Ebrahimi eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 138*a24ffb47SSadaf Ebrahimi else 139*a24ffb47SSadaf Ebrahimi eval `echo args$i`="\"$arg\"" 140*a24ffb47SSadaf Ebrahimi fi 141*a24ffb47SSadaf Ebrahimi i=$((i+1)) 142*a24ffb47SSadaf Ebrahimi done 143*a24ffb47SSadaf Ebrahimi case $i in 144*a24ffb47SSadaf Ebrahimi (0) set -- ;; 145*a24ffb47SSadaf Ebrahimi (1) set -- "$args0" ;; 146*a24ffb47SSadaf Ebrahimi (2) set -- "$args0" "$args1" ;; 147*a24ffb47SSadaf Ebrahimi (3) set -- "$args0" "$args1" "$args2" ;; 148*a24ffb47SSadaf Ebrahimi (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 149*a24ffb47SSadaf Ebrahimi (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 150*a24ffb47SSadaf Ebrahimi (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 151*a24ffb47SSadaf Ebrahimi (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 152*a24ffb47SSadaf Ebrahimi (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 153*a24ffb47SSadaf Ebrahimi (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 154*a24ffb47SSadaf Ebrahimi esac 155*a24ffb47SSadaf Ebrahimifi 156*a24ffb47SSadaf Ebrahimi 157*a24ffb47SSadaf Ebrahimi# Escape application args 158*a24ffb47SSadaf Ebrahimisave () { 159*a24ffb47SSadaf Ebrahimi for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done 160*a24ffb47SSadaf Ebrahimi echo " " 161*a24ffb47SSadaf Ebrahimi} 162*a24ffb47SSadaf EbrahimiAPP_ARGS=$(save "$@") 163*a24ffb47SSadaf Ebrahimi 164*a24ffb47SSadaf Ebrahimi# Collect all arguments for the java command, following the shell quoting and substitution rules 165*a24ffb47SSadaf Ebrahimieval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" 166*a24ffb47SSadaf Ebrahimi 167*a24ffb47SSadaf Ebrahimi# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong 168*a24ffb47SSadaf Ebrahimiif [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then 169*a24ffb47SSadaf Ebrahimi cd "$(dirname "$0")" 170*a24ffb47SSadaf Ebrahimifi 171*a24ffb47SSadaf Ebrahimi 172*a24ffb47SSadaf Ebrahimiexec "$JAVACMD" "$@" 173