Skip to content

Commit

Permalink
bug: Fix start script template.
Browse files Browse the repository at this point in the history
Closes #518
  • Loading branch information
John Engelman committed Mar 7, 2020
1 parent 2468c0b commit 7e99c02
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 26 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@
#!/usr/bin/env bash
#!/usr/bin/env sh

#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

##############################################################################
##
Expand Down Expand Up @@ -33,11 +49,11 @@ DEFAULT_JVM_OPTS=${defaultJvmOpts}
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"

warn ( ) {
warn () {
echo "\$*"
}

die ( ) {
die () {
echo
echo "\$*"
echo
Expand Down Expand Up @@ -109,8 +125,8 @@ if \$darwin; then
GRADLE_OPTS="\$GRADLE_OPTS \\"-Xdock:name=\$APP_NAME\\" \\"-Xdock:icon=\$APP_HOME/media/gradle.icns\\""
fi

# For Cygwin, switch paths to Windows format before running java
if \$cygwin ; then
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "\$cygwin" = "true" -o "\$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "\$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "\$CLASSPATH"`
JAVACMD=`cygpath --unix "\$JAVACMD"`
Expand Down Expand Up @@ -138,35 +154,30 @@ if \$cygwin ; then
else
eval `echo args\$i`="\"\$arg\""
fi
i=\$((i+1))
i=`expr \$i + 1`
done
case \$i in
(0) set -- ;;
(1) set -- "\$args0" ;;
(2) set -- "\$args0" "\$args1" ;;
(3) set -- "\$args0" "\$args1" "\$args2" ;;
(4) set -- "\$args0" "\$args1" "\$args2" "\$args3" ;;
(5) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" ;;
(6) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" "\$args5" ;;
(7) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" "\$args5" "\$args6" ;;
(8) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" "\$args5" "\$args6" "\$args7" ;;
(9) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" "\$args5" "\$args6" "\$args7" "\$args8" ;;
0) set -- ;;
1) set -- "\$args0" ;;
2) set -- "\$args0" "\$args1" ;;
3) set -- "\$args0" "\$args1" "\$args2" ;;
4) set -- "\$args0" "\$args1" "\$args2" "\$args3" ;;
5) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" ;;
6) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" "\$args5" ;;
7) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" "\$args5" "\$args6" ;;
8) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" "\$args5" "\$args6" "\$args7" ;;
9) set -- "\$args0" "\$args1" "\$args2" "\$args3" "\$args4" "\$args5" "\$args6" "\$args7" "\$args8" ;;
esac
fi

# Escape application args
save() {
save () {
for i do printf %s\\\\n "\$i" | sed "s/'/'\\\\\\\\''/g;1s/^/'/;\\\$s/\\\$/' \\\\\\\\/" ; done
echo " "
}
APP_ARGS=\$(save "\$@")
APP_ARGS=`save "\$@"`

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

# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "\$(uname)" = "Darwin" ] && [ "\$HOME" = "\$PWD" ]; then
cd "\$(dirname "\$0")"
fi

exec "\$JAVACMD" "\$@"
exec "\$JAVACMD" "\$@"
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ class ApplicationSpec extends PluginSpecification {
File startScript = getFile('build/install/myapp-shadow/bin/myapp')
assert startScript.exists()
assert startScript.text.contains("CLASSPATH=\$APP_HOME/lib/myapp-1.0-all.jar")
assert startScript.text.contains("eval set -- \"\$DEFAULT_JVM_OPTS\" \"\$JAVA_OPTS\" \"\$GRADLE_OPTS\" -jar \"\\\"\$CLASSPATH\\\"\" \"\$APP_ARGS\"")
assert startScript.text.contains("-jar \"\\\"\$CLASSPATH\\\"\" \"\$APP_ARGS\"")
assert startScript.text.contains("exec \"\$JAVACMD\" \"\$@\"")

cleanup:
Expand Down

0 comments on commit 7e99c02

Please sign in to comment.