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. |
10 |
DEFAULT_JVM_OPTS="" |
11 |
|
12 |
APP_NAME="Gradle" |
13 |
APP_BASE_NAME=`basename "$0"` |
14 |
|
15 |
# Use the maximum available, or set MAX_FD != -1 to use that value. |
16 |
MAX_FD="maximum" |
17 |
|
18 |
warn ( ) { |
19 |
echo "$*" |
20 |
} |
21 |
|
22 |
die ( ) { |
23 |
echo |
24 |
echo "$*" |
25 |
echo |
26 |
exit 1 |
27 |
} |
28 |
|
29 |
# OS specific support (must be 'true' or 'false'). |
30 |
cygwin=false |
31 |
msys=false |
32 |
darwin=false |
33 |
case "`uname`" in |
34 |
CYGWIN* ) |
35 |
cygwin=true |
36 |
;; |
37 |
Darwin* ) |
38 |
darwin=true |
39 |
;; |
40 |
MINGW* ) |
41 |
msys=true |
42 |
;; |
43 |
esac |
44 |
|
45 |
# For Cygwin, ensure paths are in UNIX format before anything is touched. |
46 |
if $cygwin ; then |
47 |
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` |
48 |
fi |
49 |
|
50 |
# Attempt to set APP_HOME |
51 |
# Resolve links: $0 may be a link |
52 |
PRG="$0" |
53 |
# Need this for relative symlinks. |
54 |
while [ -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 |
62 |
done |
63 |
SAVED="`pwd`" |
64 |
cd "`dirname \"$PRG\"`/" >&- |
65 |
APP_HOME="`pwd -P`" |
66 |
cd "$SAVED" >&- |
67 |
|
68 |
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar |
69 |
|
70 |
# Determine the Java command to use to start the JVM. |
71 |
if [ -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 |
|
81 |
Please set the JAVA_HOME variable in your environment to match the |
82 |
location of your Java installation." |
83 |
fi |
84 |
else |
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 |
|
88 |
Please set the JAVA_HOME variable in your environment to match the |
89 |
location of your Java installation." |
90 |
fi |
91 |
|
92 |
# Increase the maximum file descriptors if we can. |
93 |
if [ "$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 |
106 |
fi |
107 |
|
108 |
# For Darwin, add options to specify how the application appears in the dock |
109 |
if $darwin; then |
110 |
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" |
111 |
fi |
112 |
|
113 |
# For Cygwin, switch paths to Windows format before running java |
114 |
if $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 |
155 |
fi |
156 |
|
157 |
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules |
158 |
function splitJvmOpts() { |
159 |
JVM_OPTS=("$@") |
160 |
} |
161 |
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS |
162 |
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" |
163 |
|
164 |
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" |