158a4809720867b8f11d907ee83f1f20839499fc2Frieder Bluemle#!/usr/bin/env sh
294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver##############################################################################
494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver##
594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver##  Gradle start up script for UN*X
694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver##
794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver##############################################################################
894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
9e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle# Attempt to set APP_HOME
10e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle# Resolve links: $0 may be a link
11e231d681d7ae7de26523d8aa92d5368281e54102Frieder BluemlePRG="$0"
12e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle# Need this for relative symlinks.
13e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemlewhile [ -h "$PRG" ] ; do
14e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle    ls=`ls -ld "$PRG"`
15e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle    link=`expr "$ls" : '.*-> \(.*\)$'`
16e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle    if expr "$link" : '/.*' > /dev/null; then
17e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle        PRG="$link"
18e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle    else
19e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle        PRG=`dirname "$PRG"`"/$link"
20e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle    fi
21e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemledone
22e231d681d7ae7de26523d8aa92d5368281e54102Frieder BluemleSAVED="`pwd`"
23e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemlecd "`dirname \"$PRG\"`/" >/dev/null
24e231d681d7ae7de26523d8aa92d5368281e54102Frieder BluemleAPP_HOME="`pwd -P`"
25e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemlecd "$SAVED" >/dev/null
2694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
2794599babbb437dd6bbd51d61dce42b57b71d88deBen GruverAPP_NAME="Gradle"
2894599babbb437dd6bbd51d61dce42b57b71d88deBen GruverAPP_BASE_NAME=`basename "$0"`
2994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
30e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
31e231d681d7ae7de26523d8aa92d5368281e54102Frieder BluemleDEFAULT_JVM_OPTS=""
32e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle
3394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# Use the maximum available, or set MAX_FD != -1 to use that value.
3494599babbb437dd6bbd51d61dce42b57b71d88deBen GruverMAX_FD="maximum"
3594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
3694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverwarn ( ) {
3794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    echo "$*"
3894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver}
3994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
4094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverdie ( ) {
4194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    echo
4294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    echo "$*"
4394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    echo
4494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    exit 1
4594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver}
4694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
4794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# OS specific support (must be 'true' or 'false').
4894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruvercygwin=false
4994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruvermsys=false
5094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverdarwin=false
51e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemlenonstop=false
5294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruvercase "`uname`" in
5394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver  CYGWIN* )
5494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    cygwin=true
5594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    ;;
5694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver  Darwin* )
5794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    darwin=true
5894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    ;;
5994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver  MINGW* )
6094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    msys=true
6194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    ;;
62e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle  NONSTOP* )
63e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle    nonstop=true
64e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle    ;;
6594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruveresac
6694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
6794599babbb437dd6bbd51d61dce42b57b71d88deBen GruverCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
6894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
6994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# Determine the Java command to use to start the JVM.
7094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverif [ -n "$JAVA_HOME" ] ; then
7194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
7294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        # IBM's JDK on AIX uses strange locations for the executables
7394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        JAVACMD="$JAVA_HOME/jre/sh/java"
7494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    else
7594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        JAVACMD="$JAVA_HOME/bin/java"
7694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    fi
7794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    if [ ! -x "$JAVACMD" ] ; then
7894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
7994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
8094599babbb437dd6bbd51d61dce42b57b71d88deBen GruverPlease set the JAVA_HOME variable in your environment to match the
8194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverlocation of your Java installation."
8294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    fi
8394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverelse
8494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    JAVACMD="java"
8594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
8694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
8794599babbb437dd6bbd51d61dce42b57b71d88deBen GruverPlease set the JAVA_HOME variable in your environment to match the
8894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverlocation of your Java installation."
8994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverfi
9094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
9194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# Increase the maximum file descriptors if we can.
92e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemleif [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
9394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    MAX_FD_LIMIT=`ulimit -H -n`
9494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    if [ $? -eq 0 ] ; then
9594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
9694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver            MAX_FD="$MAX_FD_LIMIT"
9794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        fi
9894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        ulimit -n $MAX_FD
9994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        if [ $? -ne 0 ] ; then
10094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver            warn "Could not set maximum file descriptor limit: $MAX_FD"
10194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        fi
10294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    else
10394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
10494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    fi
10594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverfi
10694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
10794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# For Darwin, add options to specify how the application appears in the dock
10894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverif $darwin; then
10994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
11094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverfi
11194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
11294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver# For Cygwin, switch paths to Windows format before running java
11394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverif $cygwin ; then
11494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
11594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
1166c6b9f0845e32ee841b267395bdf77fa9217e83bBen Gruver    JAVACMD=`cygpath --unix "$JAVACMD"`
11794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
11894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    # We build the pattern for arguments to be converted via cygpath
11994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
12094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    SEP=""
12194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    for dir in $ROOTDIRSRAW ; do
12294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        ROOTDIRS="$ROOTDIRS$SEP$dir"
12394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        SEP="|"
12494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    done
12594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    OURCYGPATTERN="(^($ROOTDIRS))"
12694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    # Add a user-defined pattern to the cygpath arguments
12794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
12894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
12994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    fi
13094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    # Now convert the arguments - kludge to limit ourselves to /bin/sh
13194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    i=0
13294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    for arg in "$@" ; do
13394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
13494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
13594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
13694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
13794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
13894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        else
13994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver            eval `echo args$i`="\"$arg\""
14094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        fi
14194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        i=$((i+1))
14294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    done
14394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    case $i in
14494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        (0) set -- ;;
14594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        (1) set -- "$args0" ;;
14694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        (2) set -- "$args0" "$args1" ;;
14794599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        (3) set -- "$args0" "$args1" "$args2" ;;
14894599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
14994599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
15094599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
15194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
15294599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
15394599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
15494599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver    esac
15594599babbb437dd6bbd51d61dce42b57b71d88deBen Gruverfi
15694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
15758a4809720867b8f11d907ee83f1f20839499fc2Frieder Bluemle# Escape application args
15858a4809720867b8f11d907ee83f1f20839499fc2Frieder Bluemlesave ( ) {
15958a4809720867b8f11d907ee83f1f20839499fc2Frieder Bluemle    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
16058a4809720867b8f11d907ee83f1f20839499fc2Frieder Bluemle    echo " "
16194599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver}
16258a4809720867b8f11d907ee83f1f20839499fc2Frieder BluemleAPP_ARGS=$(save "$@")
16358a4809720867b8f11d907ee83f1f20839499fc2Frieder Bluemle
16458a4809720867b8f11d907ee83f1f20839499fc2Frieder Bluemle# Collect all arguments for the java command, following the shell quoting and substitution rules
16558a4809720867b8f11d907ee83f1f20839499fc2Frieder Bluemleeval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
16694599babbb437dd6bbd51d61dce42b57b71d88deBen Gruver
167e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
16858a4809720867b8f11d907ee83f1f20839499fc2Frieder Bluemleif [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
169e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle  cd "$(dirname "$0")"
170e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemlefi
171e231d681d7ae7de26523d8aa92d5368281e54102Frieder Bluemle
17258a4809720867b8f11d907ee83f1f20839499fc2Frieder Bluemleexec "$JAVACMD" "$@"
173