Skip to content

Commit 7e99c02

Browse files
author
John Engelman
committed
bug: Fix start script template.
Closes #518
1 parent 2468c0b commit 7e99c02

2 files changed

Lines changed: 37 additions & 26 deletions

File tree

src/main/resources/com/github/jengelman/gradle/plugins/shadow/internal/unixStartScript.txt

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,20 @@
1-
#!/usr/bin/env bash
1+
#!/usr/bin/env sh
2+
3+
#
4+
# Copyright 2015 the original author or authors.
5+
#
6+
# Licensed under the Apache License, Version 2.0 (the "License");
7+
# you may not use this file except in compliance with the License.
8+
# You may obtain a copy of the License at
9+
#
10+
# https://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
#
218

319
##############################################################################
420
##
@@ -33,11 +49,11 @@ DEFAULT_JVM_OPTS=${defaultJvmOpts}
3349
# Use the maximum available, or set MAX_FD != -1 to use that value.
3450
MAX_FD="maximum"
3551

36-
warn ( ) {
52+
warn () {
3753
echo "\$*"
3854
}
3955

40-
die ( ) {
56+
die () {
4157
echo
4258
echo "\$*"
4359
echo
@@ -109,8 +125,8 @@ if \$darwin; then
109125
GRADLE_OPTS="\$GRADLE_OPTS \\"-Xdock:name=\$APP_NAME\\" \\"-Xdock:icon=\$APP_HOME/media/gradle.icns\\""
110126
fi
111127

112-
# For Cygwin, switch paths to Windows format before running java
113-
if \$cygwin ; then
128+
# For Cygwin or MSYS, switch paths to Windows format before running java
129+
if [ "\$cygwin" = "true" -o "\$msys" = "true" ] ; then
114130
APP_HOME=`cygpath --path --mixed "\$APP_HOME"`
115131
CLASSPATH=`cygpath --path --mixed "\$CLASSPATH"`
116132
JAVACMD=`cygpath --unix "\$JAVACMD"`
@@ -138,35 +154,30 @@ if \$cygwin ; then
138154
else
139155
eval `echo args\$i`="\"\$arg\""
140156
fi
141-
i=\$((i+1))
157+
i=`expr \$i + 1`
142158
done
143159
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" ;;
160+
0) set -- ;;
161+
1) set -- "\$args0" ;;
162+
2) set -- "\$args0" "\$args1" ;;
163+
3) set -- "\$args0" "\$args1" "\$args2" ;;
164+
4) set -- "\$args0" "\$args1" "\$args2" "\$args3" ;;
165+
5) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" ;;
166+
6) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" "\$args5" ;;
167+
7) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" "\$args5" "\$args6" ;;
168+
8) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" "\$args5" "\$args6" "\$args7" ;;
169+
9) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" "\$args5" "\$args6" "\$args7" "\$args8" ;;
154170
esac
155171
fi
156172

157173
# Escape application args
158-
save() {
174+
save () {
159175
for i do printf %s\\\\n "\$i" | sed "s/'/'\\\\\\\\''/g;1s/^/'/;\\\$s/\\\$/' \\\\\\\\/" ; done
160176
echo " "
161177
}
162-
APP_ARGS=\$(save "\$@")
178+
APP_ARGS=`save "\$@"`
163179

164180
# Collect all arguments for the java command, following the shell quoting and substitution rules
165-
eval set -- "\$DEFAULT_JVM_OPTS" "\$JAVA_OPTS" "\$GRADLE_OPTS" <% if ( appNameSystemProperty ) { %>"\"-D${appNameSystemProperty}=\$APP_BASE_NAME\"" <% } %>-jar "\"\$CLASSPATH\"" "\$APP_ARGS"
181+
eval set -- \$DEFAULT_JVM_OPTS \$JAVA_OPTS \$${optsEnvironmentVar} <% if ( appNameSystemProperty ) { %>"\"-D${appNameSystemProperty}=\$APP_BASE_NAME\"" <% } %>-jar "\"\$CLASSPATH\"" "\$APP_ARGS"
166182

167-
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
168-
if [ "\$(uname)" = "Darwin" ] && [ "\$HOME" = "\$PWD" ]; then
169-
cd "\$(dirname "\$0")"
170-
fi
171-
172-
exec "\$JAVACMD" "\$@"
183+
exec "\$JAVACMD" "\$@"

src/test/groovy/com/github/jengelman/gradle/plugins/shadow/ApplicationSpec.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class ApplicationSpec extends PluginSpecification {
7373
File startScript = getFile('build/install/myapp-shadow/bin/myapp')
7474
assert startScript.exists()
7575
assert startScript.text.contains("CLASSPATH=\$APP_HOME/lib/myapp-1.0-all.jar")
76-
assert startScript.text.contains("eval set -- \"\$DEFAULT_JVM_OPTS\" \"\$JAVA_OPTS\" \"\$GRADLE_OPTS\" -jar \"\\\"\$CLASSPATH\\\"\" \"\$APP_ARGS\"")
76+
assert startScript.text.contains("-jar \"\\\"\$CLASSPATH\\\"\" \"\$APP_ARGS\"")
7777
assert startScript.text.contains("exec \"\$JAVACMD\" \"\$@\"")
7878

7979
cleanup:

0 commit comments

Comments
 (0)