11#! /bin/sh
22
33#
4- # Copyright © 2015-2021 the original authors.
4+ # Copyright © 2015 the original authors.
55#
66# Licensed under the Apache License, Version 2.0 (the "License");
77# you may not use this file except in compliance with the License.
1515# See the License for the specific language governing permissions and
1616# limitations under the License.
1717#
18+ # SPDX-License-Identifier: Apache-2.0
19+ #
1820
1921# #############################################################################
2022#
5557# Darwin, MinGW, and NonStop.
5658#
5759# (3) This script is generated from the Groovy template
58- # https://github.com/gradle/gradle/blob/master/subprojects/ plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
60+ # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/ plugins-application /src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
5961# within the Gradle project.
6062#
6163# You can find Gradle at https://github.com/gradle/gradle/.
8082 esac
8183done
8284
83- APP_HOME=$( cd " ${APP_HOME:- ./ } " && pwd -P ) || exit
84-
85- APP_NAME=" Gradle"
85+ # This is normally unused
86+ # shellcheck disable=SC2034
8687APP_BASE_NAME=${0##*/ }
87-
88- # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
89- DEFAULT_JVM_OPTS=' "-Xmx64m" "-Xms64m"'
88+ # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
89+ APP_HOME=$( cd -P " ${APP_HOME:- ./ } " > /dev/null && printf ' %s\n' " $PWD " ) || exit
9090
9191# Use the maximum available, or set MAX_FD != -1 to use that value.
9292MAX_FD=maximum
@@ -114,7 +114,6 @@ case "$( uname )" in #(
114114 NONSTOP* ) nonstop=true ;;
115115esac
116116
117- CLASSPATH=$APP_HOME /gradle/wrapper/gradle-wrapper.jar
118117
119118
120119# Determine the Java command to use to start the JVM.
@@ -133,22 +132,29 @@ location of your Java installation."
133132 fi
134133else
135134 JAVACMD=java
136- which java > /dev/null 2>&1 || die " ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
135+ if ! command -v java > /dev/null 2>&1
136+ then
137+ die " ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137138
138139Please set the JAVA_HOME variable in your environment to match the
139140location of your Java installation."
141+ fi
140142fi
141143
142144# Increase the maximum file descriptors if we can.
143145if ! " $cygwin " && ! " $darwin " && ! " $nonstop " ; then
144146 case $MAX_FD in # (
145147 max* )
148+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
149+ # shellcheck disable=SC2039,SC3045
146150 MAX_FD=$( ulimit -H -n ) ||
147151 warn " Could not query maximum file descriptor limit"
148152 esac
149153 case $MAX_FD in # (
150154 ' ' | soft) : ;; # (
151155 * )
156+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
157+ # shellcheck disable=SC2039,SC3045
152158 ulimit -n " $MAX_FD " ||
153159 warn " Could not set maximum file descriptor limit to $MAX_FD "
154160 esac
165171# For Cygwin or MSYS, switch paths to Windows format before running java
166172if " $cygwin " || " $msys " ; then
167173 APP_HOME=$( cygpath --path --mixed " $APP_HOME " )
168- CLASSPATH=$( cygpath --path --mixed " $CLASSPATH " )
169174
170175 JAVACMD=$( cygpath --unix " $JAVACMD " )
171176
@@ -193,16 +198,19 @@ if "$cygwin" || "$msys" ; then
193198 done
194199fi
195200
196- # Collect all arguments for the java command;
197- # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
198- # shell script including quotes and variable substitutions, so put them in
199- # double quotes to make sure that they get re-expanded; and
200- # * put everything else in single quotes, so that it's not re-expanded.
201+
202+ # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
203+ DEFAULT_JVM_OPTS=' "-Xmx64m" "-Xms64m"'
204+
205+ # Collect all arguments for the java command:
206+ # * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
207+ # and any embedded shellness will be escaped.
208+ # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
209+ # treated as '${Hostname}' itself on the command line.
201210
202211set -- \
203212 " -Dorg.gradle.appname=$APP_BASE_NAME " \
204- -classpath " $CLASSPATH " \
205- org.gradle.wrapper.GradleWrapperMain \
213+ -jar " $APP_HOME /gradle/wrapper/gradle-wrapper.jar" \
206214 " $@ "
207215
208216# Stop when "xargs" is not available.
0 commit comments