@@ -81,43 +81,47 @@ install_jdk() {
8181 curl -fL " $url " -o " $archive "
8282 fi
8383
84- # Find top directory name inside the tarball
8584 local top
8685 top=$( tar -tzf " $archive " 2> /dev/null | head -1 | cut -d/ -f1 || true)
86+ if [ -z " $top " ]; then
87+ log " Unable to determine extracted directory from $( basename " $archive " ) " >&2
88+ exit 1
89+ fi
8790
88- # Extract only if target directory doesn't already exist
89- if [ -n " $top " ] && [ - d " $DOWNLOAD_DIR / $top " ]; then
90- log " JDK already extracted at $DOWNLOAD_DIR / $top "
91+ local extracted= " $DOWNLOAD_DIR / $top "
92+ if [ -d " $extracted " ]; then
93+ log " JDK already extracted at $extracted "
9194 else
9295 log " Extracting JDK to $DOWNLOAD_DIR "
9396 tar -xzf " $archive " -C " $DOWNLOAD_DIR "
9497 fi
9598
96- local home=" $DOWNLOAD_DIR / $top "
99+ local home=" $extracted "
97100 if [ -d " $home /Contents/Home" ]; then
98101 home=" $home /Contents/Home"
99102 fi
100- eval " $dest_var =\" $home \" "
103+
104+ printf -v " $dest_var " ' %s' " $home "
101105}
102106
103107log " Ensuring JDK 8 is available"
104- if [ ! -x " ${JAVA_HOME:- } /bin/java" ] || ! " ${ JAVA_HOME:- } /bin/java" -version 2>&1 | grep -q ' 8\.0' ; then
108+ if [ -z " ${JAVA_HOME:- } " ] || [ ! -x " $JAVA_HOME /bin/java" ] || ! " $JAVA_HOME /bin/java" -version 2>&1 | grep -q ' 8\.0' ; then
105109 log " Provisioning JDK 8..."
106110 install_jdk " $JDK8_URL " JAVA_HOME
107111else
108112 log " Using existing JDK 8 at $JAVA_HOME "
109113fi
110114
111115log " Ensuring JDK 17 is available"
112- if [ ! -x " ${JAVA_HOME_17:- } /bin/java" ] || ! " ${ JAVA_HOME_17:- } /bin/java" -version 2>&1 | grep -q ' 17\.0' ; then
116+ if [ -z " ${JAVA_HOME_17:- } " ] || [ ! -x " $JAVA_HOME_17 /bin/java" ] || ! " $JAVA_HOME_17 /bin/java" -version 2>&1 | grep -q ' 17\.0' ; then
113117 log " Provisioning JDK 17..."
114118 install_jdk " $JDK17_URL " JAVA_HOME_17
115119else
116120 log " Using existing JDK 17 at $JAVA_HOME_17 "
117121fi
118122
119123log " Ensuring Maven is available"
120- if ! [ -x " ${MAVEN_HOME:- } /bin/mvn" ]; then
124+ if [ -z " ${MAVEN_HOME:- } " ] || ! [ -x " $MAVEN_HOME /bin/mvn" ]; then
121125 mvn_archive=" $DOWNLOAD_DIR /$( basename " $MAVEN_URL " ) "
122126 if [ -f " $mvn_archive " ]; then
123127 log " Using cached Maven archive $( basename " $mvn_archive " ) "
@@ -126,6 +130,10 @@ if ! [ -x "${MAVEN_HOME:-}/bin/mvn" ]; then
126130 curl -fL " $MAVEN_URL " -o " $mvn_archive "
127131 fi
128132 mvn_top=$( tar -tzf " $mvn_archive " 2> /dev/null | head -1 | cut -d/ -f1 || true)
133+ if [ -z " $mvn_top " ]; then
134+ log " Unable to determine extracted directory from $( basename " $mvn_archive " ) " >&2
135+ exit 1
136+ fi
129137 if [ -n " $mvn_top " ] && [ -d " $DOWNLOAD_DIR /$mvn_top " ]; then
130138 log " Maven already extracted at $DOWNLOAD_DIR /$mvn_top "
131139 else
@@ -201,4 +209,4 @@ set -e
201209if [ " ${skip_archetypes:- 0} " -eq 0 ]; then
202210 (cd cn1-maven-archetypes && " $MAVEN_HOME /bin/mvn" -DskipTests -DskipITs=true -Dinvoker.skip=true install) || \
203211 log " Archetype mvn install failed; continuing."
204- fi
212+ fi
0 commit comments