Merge tag 'upstream/2.9.1+ds' into experimental
[debian/jabref.git] / gradlew
1 #!/bin/bash\r
2 \r
3 ##############################################################################\r
4 ##\r
5 ##  Gradle start up script for UN*X\r
6 ##\r
7 ##############################################################################\r
8 \r
9 # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\r
10 DEFAULT_JVM_OPTS=""\r
11 \r
12 APP_NAME="Gradle"\r
13 APP_BASE_NAME=`basename "$0"`\r
14 \r
15 # Use the maximum available, or set MAX_FD != -1 to use that value.\r
16 MAX_FD="maximum"\r
17 \r
18 warn ( ) {\r
19     echo "$*"\r
20 }\r
21 \r
22 die ( ) {\r
23     echo\r
24     echo "$*"\r
25     echo\r
26     exit 1\r
27 }\r
28 \r
29 # OS specific support (must be 'true' or 'false').\r
30 cygwin=false\r
31 msys=false\r
32 darwin=false\r
33 case "`uname`" in\r
34   CYGWIN* )\r
35     cygwin=true\r
36     ;;\r
37   Darwin* )\r
38     darwin=true\r
39     ;;\r
40   MINGW* )\r
41     msys=true\r
42     ;;\r
43 esac\r
44 \r
45 # For Cygwin, ensure paths are in UNIX format before anything is touched.\r
46 if $cygwin ; then\r
47     [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`\r
48 fi\r
49 \r
50 # Attempt to set APP_HOME\r
51 # Resolve links: $0 may be a link\r
52 PRG="$0"\r
53 # Need this for relative symlinks.\r
54 while [ -h "$PRG" ] ; do\r
55     ls=`ls -ld "$PRG"`\r
56     link=`expr "$ls" : '.*-> \(.*\)$'`\r
57     if expr "$link" : '/.*' > /dev/null; then\r
58         PRG="$link"\r
59     else\r
60         PRG=`dirname "$PRG"`"/$link"\r
61     fi\r
62 done\r
63 SAVED="`pwd`"\r
64 cd "`dirname \"$PRG\"`/"\r
65 APP_HOME="`pwd -P`"\r
66 cd "$SAVED"\r
67 \r
68 CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar\r
69 \r
70 # Determine the Java command to use to start the JVM.\r
71 if [ -n "$JAVA_HOME" ] ; then\r
72     if [ -x "$JAVA_HOME/jre/sh/java" ] ; then\r
73         # IBM's JDK on AIX uses strange locations for the executables\r
74         JAVACMD="$JAVA_HOME/jre/sh/java"\r
75     else\r
76         JAVACMD="$JAVA_HOME/bin/java"\r
77     fi\r
78     if [ ! -x "$JAVACMD" ] ; then\r
79         die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME\r
80 \r
81 Please set the JAVA_HOME variable in your environment to match the\r
82 location of your Java installation."\r
83     fi\r
84 else\r
85     JAVACMD="java"\r
86     which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\r
87 \r
88 Please set the JAVA_HOME variable in your environment to match the\r
89 location of your Java installation."\r
90 fi\r
91 \r
92 # Increase the maximum file descriptors if we can.\r
93 if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then\r
94     MAX_FD_LIMIT=`ulimit -H -n`\r
95     if [ $? -eq 0 ] ; then\r
96         if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then\r
97             MAX_FD="$MAX_FD_LIMIT"\r
98         fi\r
99         ulimit -n $MAX_FD\r
100         if [ $? -ne 0 ] ; then\r
101             warn "Could not set maximum file descriptor limit: $MAX_FD"\r
102         fi\r
103     else\r
104         warn "Could not query businessSystem maximum file descriptor limit: $MAX_FD_LIMIT"\r
105     fi\r
106 fi\r
107 \r
108 # For Darwin, add options to specify how the application appears in the dock\r
109 if $darwin; then\r
110     GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""\r
111 fi\r
112 \r
113 # For Cygwin, switch paths to Windows format before running java\r
114 if $cygwin ; then\r
115     APP_HOME=`cygpath --path --mixed "$APP_HOME"`\r
116     CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`\r
117 \r
118     # We build the pattern for arguments to be converted via cygpath\r
119     ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`\r
120     SEP=""\r
121     for dir in $ROOTDIRSRAW ; do\r
122         ROOTDIRS="$ROOTDIRS$SEP$dir"\r
123         SEP="|"\r
124     done\r
125     OURCYGPATTERN="(^($ROOTDIRS))"\r
126     # Add a user-defined pattern to the cygpath arguments\r
127     if [ "$GRADLE_CYGPATTERN" != "" ] ; then\r
128         OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"\r
129     fi\r
130     # Now convert the arguments - kludge to limit ourselves to /bin/sh\r
131     i=0\r
132     for arg in "$@" ; do\r
133         CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`\r
134         CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option\r
135 \r
136         if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition\r
137             eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`\r
138         else\r
139             eval `echo args$i`="\"$arg\""\r
140         fi\r
141         i=$((i+1))\r
142     done\r
143     case $i in\r
144         (0) set -- ;;\r
145         (1) set -- "$args0" ;;\r
146         (2) set -- "$args0" "$args1" ;;\r
147         (3) set -- "$args0" "$args1" "$args2" ;;\r
148         (4) set -- "$args0" "$args1" "$args2" "$args3" ;;\r
149         (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;\r
150         (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;\r
151         (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;\r
152         (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;\r
153         (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;\r
154     esac\r
155 fi\r
156 \r
157 # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules\r
158 function splitJvmOpts() {\r
159     JVM_OPTS=("$@")\r
160 }\r
161 eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS\r
162 JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"\r
163 \r
164 exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"\r