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