gradlew

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