Skip to content

Commit ab8d286

Browse files
committed
Merge pull request #11458 from Leo Gutiérrez Ramírez
* gh-11458: Polish "Fix shellcheck warnings in CLI's bash script" Fix shellcheck warnings in CLI's bash script
2 parents aaecdfb + fcc73c6 commit ab8d286

File tree

1 file changed

+65
-48
lines changed
  • spring-boot-project/spring-boot-cli/src/main/executablecontent/bin

1 file changed

+65
-48
lines changed
Lines changed: 65 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#!/usr/bin/env bash
22

33
# OS specific support (must be 'true' or 'false').
4-
cygwin=false;
5-
darwin=false;
6-
case "`uname`" in
4+
cygwin=false
5+
darwin=false
6+
case "$(uname)" in
77
CYGWIN*)
88
cygwin=true
99
;;
@@ -18,63 +18,79 @@ case "`uname`" in
1818
esac
1919

2020
# For Cygwin, ensure paths are in UNIX format before anything is touched.
21-
if $cygwin ; then
22-
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
21+
if ${cygwin} ; then
22+
[ -n "${JAVA_HOME}" ] && JAVA_HOME=$(cygpath --unix "${JAVA_HOME}")
2323
fi
2424

2525
# Attempt to find JAVA_HOME if not already set
2626
if [ -z "${JAVA_HOME}" ]; then
27-
if $darwin ; then
28-
[ -z "$JAVA_HOME" -a -f "/usr/libexec/java_home" ] && export JAVA_HOME=`/usr/libexec/java_home`
29-
[ -z "$JAVA_HOME" -a -d "/Library/Java/Home" ] && export JAVA_HOME="/Library/Java/Home"
30-
[ -z "$JAVA_HOME" -a -d "/System/Library/Frameworks/JavaVM.framework/Home" ] && export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
27+
if ${darwin} ; then
28+
if [[ -z "${JAVA_HOME}" && -f "/usr/libexec/java_home" ]]; then
29+
JAVA_HOME=$(/usr/libexec/java_home)
30+
export JAVA_HOME
31+
fi
32+
if [[ -z "${JAVA_HOME}" && -d "/Library/Java/Home" ]]; then
33+
export JAVA_HOME="/Library/Java/Home"
34+
fi
35+
if [[ -z "${JAVA_HOME}" && -d "/System/Library/Frameworks/JavaVM.framework/Home" ]]; then
36+
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
37+
fi
3138
else
32-
javaExecutable="`which javac`"
33-
[ -z "$javaExecutable" -o "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ] && echo "JAVA_HOME not set and cannot find javac to deduce location, please set JAVA_HOME." && exit 1
39+
javaExecutable="$(command -v javac)"
40+
if [[ -z "$javaExecutable" || "$(expr "${javaExecutable}" : '\([^ ]*\)')" = "no" ]]; then
41+
echo "JAVA_HOME not set and cannot find javac to deduce location, please set JAVA_HOME."
42+
exit 1
43+
fi
3444
# readlink(1) is not available as standard on Solaris 10.
35-
readLink=`which readlink`
36-
[ `expr "$readLink" : '\([^ ]*\)'` = "no" ] && echo "JAVA_HOME not set and readlink not available, please set JAVA_HOME." && exit 1
37-
javaExecutable="`readlink -f \"$javaExecutable\"`"
38-
javaHome="`dirname \"$javaExecutable\"`"
39-
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
40-
JAVA_HOME="$javaHome"
45+
readLink="$(command -v readlink)"
46+
[ "$(expr "${readLink}" : '\([^ ]*\)')" = "no" ] && {
47+
echo "JAVA_HOME not set and readlink not available, please set JAVA_HOME."
48+
exit 1
49+
}
50+
javaExecutable="$(readlink -f "${javaExecutable}")"
51+
javaHome="$(dirname "${javaExecutable}")"
52+
javaHome=$(expr "$javaHome" : '\(.*\)/bin')
53+
JAVA_HOME="${javaHome}"
4154
export JAVA_HOME
4255
fi
4356
fi
4457

4558
# Sanity check that we have java
4659
if [ ! -f "${JAVA_HOME}/bin/java" ]; then
47-
echo ""
48-
echo "======================================================================================================"
49-
echo " Please ensure that your JAVA_HOME points to a valid Java SDK."
50-
echo " You are currently pointing to:"
51-
echo ""
52-
echo " ${JAVA_HOME}"
53-
echo ""
54-
echo " This does not seem to be valid. Please rectify and restart."
55-
echo "======================================================================================================"
56-
echo ""
60+
cat <<-JAVA_HOME_NOT_SET_TXT
61+
62+
======================================================================================================
63+
Please ensure that your JAVA_HOME points to a valid Java SDK.
64+
You are currently pointing to:
65+
66+
${JAVA_HOME}
67+
68+
This does not seem to be valid. Please rectify and restart.
69+
======================================================================================================
70+
71+
JAVA_HOME_NOT_SET_TXT
5772
exit 1
5873
fi
5974

6075
# Attempt to find SPRING_HOME if not already set
6176
if [ -z "${SPRING_HOME}" ]; then
62-
# Resolve links: $0 may be a link
63-
PRG="$0"
64-
# Need this for relative symlinks.
65-
while [ -h "$PRG" ] ; do
66-
ls=`ls -ld "$PRG"`
67-
link=`expr "$ls" : '.*-> \(.*\)$'`
68-
if expr "$link" : '/.*' > /dev/null; then
69-
PRG="$link"
70-
else
71-
PRG=`dirname "$PRG"`"/$link"
72-
fi
73-
done
74-
SAVED="`pwd`"
75-
cd "`dirname \"$PRG\"`/../" >&-
76-
export SPRING_HOME="`pwd -P`"
77-
cd "$SAVED" >&-
77+
# Resolve links: $0 may be a link
78+
PRG="$0"
79+
# Need this for relative symlinks.
80+
while [ -h "$PRG" ] ; do
81+
ls=$(ls -ld "$PRG")
82+
link=$(expr "$ls" : '.*-> \(.*\)$')
83+
if expr "$link" : '/.*' > /dev/null; then
84+
PRG="$link"
85+
else
86+
PRG=$(dirname "$PRG")"/$link"
87+
fi
88+
done
89+
SAVED="$(pwd)"
90+
cd "$(dirname "${PRG}")/../" >&- || exit 1
91+
SPRING_HOME="$(pwd -P)"
92+
export SPRING_HOME
93+
cd "$SAVED" >&- || exit 1
7894
fi
7995

8096
if [ ! -d "${SPRING_HOME}" ]; then
@@ -84,16 +100,17 @@ if [ ! -d "${SPRING_HOME}" ]; then
84100
fi
85101

86102
CLASSPATH=.:${SPRING_HOME}/bin
87-
if [ -d ${SPRING_HOME}/ext ]; then
103+
if [ -d "${SPRING_HOME}/ext" ]; then
88104
CLASSPATH=$CLASSPATH:${SPRING_HOME}/ext
89105
fi
90-
for f in ${SPRING_HOME}/lib/*; do
106+
for f in "${SPRING_HOME}"/lib/*; do
91107
CLASSPATH=$CLASSPATH:$f
92108
done
93109

94110
if $cygwin; then
95-
SPRING_HOME=`cygpath --path --mixed "$SPRING_HOME"`
96-
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
111+
SPRING_HOME=$(cygpath --path --mixed "$SPRING_HOME")
112+
CLASSPATH=$(cygpath --path --mixed "$CLASSPATH")
97113
fi
98114

99-
"${JAVA_HOME}/bin/java" ${JAVA_OPTS} -cp "$CLASSPATH" org.springframework.boot.loader.JarLauncher "$@"
115+
IFS=" " read -r -a javaOpts <<< "$JAVA_OPTS"
116+
"${JAVA_HOME}/bin/java" "${javaOpts[@]}" -cp "$CLASSPATH" org.springframework.boot.loader.JarLauncher "$@"

0 commit comments

Comments
 (0)