1
- #! /bin/bash
1
+ #! /usr/ bin/env bash
2
2
3
3
# #############################################################################
4
- # # ##
5
- # # Gradle wrapper script for UN*X ##
6
- # # ##
4
+ # #
5
+ # # Gradle start up script for UN*X
6
+ # #
7
7
# #############################################################################
8
8
9
- # Uncomment those lines to set JVM options. GRADLE_OPTS and JAVA_OPTS can be used together.
10
- # GRADLE_OPTS="$GRADLE_OPTS -Xmx512m"
11
- # JAVA_OPTS="$JAVA_OPTS -Xmx512m"
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=" "
12
11
13
- GRADLE_APP_NAME=Gradle
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"
14
17
15
18
warn ( ) {
16
- echo " ${PROGNAME} : $ *"
19
+ echo " $* "
17
20
}
18
21
19
22
die ( ) {
20
- warn " $* "
23
+ echo
24
+ echo " $* "
25
+ echo
21
26
exit 1
22
27
}
23
28
24
-
25
29
# OS specific support (must be 'true' or 'false').
26
30
cygwin=false
27
31
msys=false
@@ -38,64 +42,77 @@ case "`uname`" in
38
42
;;
39
43
esac
40
44
41
- # Attempt to set JAVA_HOME if it's not already set.
42
- if [ -z " $JAVA_HOME " ] ; then
43
- if $darwin ; then
44
- [ -z " $JAVA_HOME " -a -d " /Library/Java/Home" ] && export JAVA_HOME=" /Library/Java/Home"
45
- [ -z " $JAVA_HOME " -a -d " /System/Library/Frameworks/JavaVM.framework/Home" ] && export JAVA_HOME=" /System/Library/Frameworks/JavaVM.framework/Home"
46
- else
47
- javaExecutable=" ` which javac` "
48
- [ -z " $javaExecutable " -o " ` expr \" $javaExecutable \" : ' \([^ ]*\)' ` " = " no" ] && die " JAVA_HOME not set and cannot find javac to deduce location, please set JAVA_HOME."
49
- # readlink(1) is not available as standard on Solaris 10.
50
- readLink=` which readlink`
51
- [ ` expr " $readLink " : ' \([^ ]*\)' ` = " no" ] && die " JAVA_HOME not set and readlink not available, please set JAVA_HOME."
52
- javaExecutable=" ` readlink -f \" $javaExecutable \" ` "
53
- javaHome=" ` dirname \" $javaExecutable \" ` "
54
- javaHome=` expr " $javaHome " : ' \(.*\)/bin' `
55
- export JAVA_HOME=" $javaHome "
56
- fi
57
- fi
58
-
59
45
# For Cygwin, ensure paths are in UNIX format before anything is touched.
60
46
if $cygwin ; then
61
- [ -n " $JAVACMD " ] && JAVACMD=` cygpath --unix " $JAVACMD " `
62
47
[ -n " $JAVA_HOME " ] && JAVA_HOME=` cygpath --unix " $JAVA_HOME " `
63
48
fi
64
49
65
- STARTER_MAIN_CLASS=org.gradle.wrapper.GradleWrapperMain
66
- CLASSPATH=` dirname " $0 " ` /gradle/wrapper/gradle-wrapper.jar
67
- WRAPPER_PROPERTIES=` dirname " $0 " ` /gradle/wrapper/gradle-wrapper.properties
68
- REPO_INIT_SCRIPT=` dirname " $0 " ` /buildSrc/repo-init.gradle
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
69
70
70
# Determine the Java command to use to start the JVM.
71
- if [ -z " $JAVACMD " ] ; then
72
- if [ -n " $JAVA_HOME " ] ; then
73
- if [ -x " $JAVA_HOME /jre/sh/java" ] ; then
74
- # IBM's JDK on AIX uses strange locations for the executables
75
- JAVACMD=" $JAVA_HOME /jre/sh/java"
76
- else
77
- JAVACMD=" $JAVA_HOME /bin/java"
78
- fi
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"
79
75
else
80
- JAVACMD=" java"
76
+ JAVACMD=" $JAVA_HOME /bin/ java"
81
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."
82
90
fi
83
- if [ ! -x " $JAVACMD " ] ; then
84
- die " JAVA_HOME is not defined correctly, can not execute: $JAVACMD "
85
- fi
86
- if [ -z " $JAVA_HOME " ] ; then
87
- warn " JAVA_HOME environment variable is not set"
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
88
106
fi
89
107
90
- # For Darwin, add GRADLE_APP_NAME to the JAVA_OPTS as -Xdock:name
108
+ # For Darwin, add options to specify how the application appears in the dock
91
109
if $darwin ; then
92
- JAVA_OPTS=" $JAVA_OPTS -Xdock:name=$GRADLE_APP_NAME "
93
- # we may also want to set -Xdock:image
110
+ GRADLE_OPTS=" $GRADLE_OPTS \" -Xdock:name=$APP_NAME \" \" -Xdock:icon=$APP_HOME /media/gradle.icns\" "
94
111
fi
95
112
96
113
# For Cygwin, switch paths to Windows format before running java
97
114
if $cygwin ; then
98
- JAVA_HOME =` cygpath --path --mixed " $JAVA_HOME " `
115
+ APP_HOME =` cygpath --path --mixed " $APP_HOME " `
99
116
CLASSPATH=` cygpath --path --mixed " $CLASSPATH " `
100
117
101
118
# We build the pattern for arguments to be converted via cygpath
@@ -137,11 +154,11 @@ if $cygwin ; then
137
154
esac
138
155
fi
139
156
140
- GRADLE_APP_BASE_NAME=` basename " $0 " `
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 "
141
163
142
- " $JAVACMD " $JAVA_OPTS $GRADLE_OPTS \
143
- -classpath " $CLASSPATH " \
144
- -Dorg.gradle.appname=" $GRADLE_APP_BASE_NAME " \
145
- -Dorg.gradle.wrapper.properties=" $WRAPPER_PROPERTIES " \
146
- $STARTER_MAIN_CLASS \
147
- " $@ "
164
+ exec " $JAVACMD " " ${JVM_OPTS[@]} " -classpath " $CLASSPATH " org.gradle.wrapper.GradleWrapperMain " $@ "
0 commit comments