nuclear@0: #!/usr/bin/env bash nuclear@0: nuclear@0: ############################################################################## nuclear@0: ## nuclear@0: ## Gradle start up script for UN*X nuclear@0: ## nuclear@0: ############################################################################## nuclear@0: nuclear@0: # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. nuclear@0: DEFAULT_JVM_OPTS="" nuclear@0: nuclear@0: APP_NAME="Gradle" nuclear@0: APP_BASE_NAME=`basename "$0"` nuclear@0: nuclear@0: # Use the maximum available, or set MAX_FD != -1 to use that value. nuclear@0: MAX_FD="maximum" nuclear@0: nuclear@0: warn ( ) { nuclear@0: echo "$*" nuclear@0: } nuclear@0: nuclear@0: die ( ) { nuclear@0: echo nuclear@0: echo "$*" nuclear@0: echo nuclear@0: exit 1 nuclear@0: } nuclear@0: nuclear@0: # OS specific support (must be 'true' or 'false'). nuclear@0: cygwin=false nuclear@0: msys=false nuclear@0: darwin=false nuclear@0: case "`uname`" in nuclear@0: CYGWIN* ) nuclear@0: cygwin=true nuclear@0: ;; nuclear@0: Darwin* ) nuclear@0: darwin=true nuclear@0: ;; nuclear@0: MINGW* ) nuclear@0: msys=true nuclear@0: ;; nuclear@0: esac nuclear@0: nuclear@0: # For Cygwin, ensure paths are in UNIX format before anything is touched. nuclear@0: if $cygwin ; then nuclear@0: [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` nuclear@0: fi nuclear@0: nuclear@0: # Attempt to set APP_HOME nuclear@0: # Resolve links: $0 may be a link nuclear@0: PRG="$0" nuclear@0: # Need this for relative symlinks. nuclear@0: while [ -h "$PRG" ] ; do nuclear@0: ls=`ls -ld "$PRG"` nuclear@0: link=`expr "$ls" : '.*-> \(.*\)$'` nuclear@0: if expr "$link" : '/.*' > /dev/null; then nuclear@0: PRG="$link" nuclear@0: else nuclear@0: PRG=`dirname "$PRG"`"/$link" nuclear@0: fi nuclear@0: done nuclear@0: SAVED="`pwd`" nuclear@0: cd "`dirname \"$PRG\"`/" >&- nuclear@0: APP_HOME="`pwd -P`" nuclear@0: cd "$SAVED" >&- nuclear@0: nuclear@0: CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar nuclear@0: nuclear@0: # Determine the Java command to use to start the JVM. nuclear@0: if [ -n "$JAVA_HOME" ] ; then nuclear@0: if [ -x "$JAVA_HOME/jre/sh/java" ] ; then nuclear@0: # IBM's JDK on AIX uses strange locations for the executables nuclear@0: JAVACMD="$JAVA_HOME/jre/sh/java" nuclear@0: else nuclear@0: JAVACMD="$JAVA_HOME/bin/java" nuclear@0: fi nuclear@0: if [ ! -x "$JAVACMD" ] ; then nuclear@0: die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME nuclear@0: nuclear@0: Please set the JAVA_HOME variable in your environment to match the nuclear@0: location of your Java installation." nuclear@0: fi nuclear@0: else nuclear@0: JAVACMD="java" nuclear@0: which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. nuclear@0: nuclear@0: Please set the JAVA_HOME variable in your environment to match the nuclear@0: location of your Java installation." nuclear@0: fi nuclear@0: nuclear@0: # Increase the maximum file descriptors if we can. nuclear@0: if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then nuclear@0: MAX_FD_LIMIT=`ulimit -H -n` nuclear@0: if [ $? -eq 0 ] ; then nuclear@0: if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then nuclear@0: MAX_FD="$MAX_FD_LIMIT" nuclear@0: fi nuclear@0: ulimit -n $MAX_FD nuclear@0: if [ $? -ne 0 ] ; then nuclear@0: warn "Could not set maximum file descriptor limit: $MAX_FD" nuclear@0: fi nuclear@0: else nuclear@0: warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" nuclear@0: fi nuclear@0: fi nuclear@0: nuclear@0: # For Darwin, add options to specify how the application appears in the dock nuclear@0: if $darwin; then nuclear@0: GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" nuclear@0: fi nuclear@0: nuclear@0: # For Cygwin, switch paths to Windows format before running java nuclear@0: if $cygwin ; then nuclear@0: APP_HOME=`cygpath --path --mixed "$APP_HOME"` nuclear@0: CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` nuclear@0: nuclear@0: # We build the pattern for arguments to be converted via cygpath nuclear@0: ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` nuclear@0: SEP="" nuclear@0: for dir in $ROOTDIRSRAW ; do nuclear@0: ROOTDIRS="$ROOTDIRS$SEP$dir" nuclear@0: SEP="|" nuclear@0: done nuclear@0: OURCYGPATTERN="(^($ROOTDIRS))" nuclear@0: # Add a user-defined pattern to the cygpath arguments nuclear@0: if [ "$GRADLE_CYGPATTERN" != "" ] ; then nuclear@0: OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" nuclear@0: fi nuclear@0: # Now convert the arguments - kludge to limit ourselves to /bin/sh nuclear@0: i=0 nuclear@0: for arg in "$@" ; do nuclear@0: CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` nuclear@0: CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option nuclear@0: nuclear@0: if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition nuclear@0: eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` nuclear@0: else nuclear@0: eval `echo args$i`="\"$arg\"" nuclear@0: fi nuclear@0: i=$((i+1)) nuclear@0: done nuclear@0: case $i in nuclear@0: (0) set -- ;; nuclear@0: (1) set -- "$args0" ;; nuclear@0: (2) set -- "$args0" "$args1" ;; nuclear@0: (3) set -- "$args0" "$args1" "$args2" ;; nuclear@0: (4) set -- "$args0" "$args1" "$args2" "$args3" ;; nuclear@0: (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; nuclear@0: (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; nuclear@0: (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; nuclear@0: (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; nuclear@0: (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; nuclear@0: esac nuclear@0: fi nuclear@0: nuclear@0: # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules nuclear@0: function splitJvmOpts() { nuclear@0: JVM_OPTS=("$@") nuclear@0: } nuclear@0: eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS nuclear@0: JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" nuclear@0: nuclear@0: exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"