5353 exit 1
5454fi
5555
56- if [ " ${ADJUSTED_ID} " = " rhel" ] && [ " ${VERSION_CODENAME-} " = " centos7" ]; then
57- # As of 1 July 2024, mirrorlist.centos.org no longer exists.
58- # Update the repo files to reference vault.centos.org.
59- sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/* .repo
60- sed -i s/^# .*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo
61- sed -i s/^mirrorlist=http/# mirrorlist=http/g /etc/yum.repos.d/*.repo
62- fi
63-
6456# Setup INSTALL_CMD & PKG_MGR_CMD
6557if type apt-get > /dev/null 2>&1 ; then
6658 PKG_MGR_CMD=apt-get
7971 exit 1
8072fi
8173
74+ pkg_manager_update () {
75+ case $ADJUSTED_ID in
76+ debian)
77+ if [ " $( find /var/lib/apt/lists/* | wc -l) " = " 0" ]; then
78+ echo " Running apt-get update..."
79+ ${PKG_MGR_CMD} update -y
80+ fi
81+ ;;
82+ rhel)
83+ if [ ${PKG_MGR_CMD} = " microdnf" ]; then
84+ if [ " $( ls /var/cache/yum/* 2> /dev/null | wc -l) " = 0 ]; then
85+ echo " Running ${PKG_MGR_CMD} makecache ..."
86+ ${PKG_MGR_CMD} makecache
87+ fi
88+ else
89+ if [ " $( ls /var/cache/${PKG_MGR_CMD} /* 2> /dev/null | wc -l) " = 0 ]; then
90+ echo " Running ${PKG_MGR_CMD} check-update ..."
91+ set +e
92+ stderr_messages=$( ${PKG_MGR_CMD} -q check-update 2>&1 )
93+ rc=$?
94+ # centos 7 sometimes returns a status of 100 when it apears to work.
95+ if [ $rc != 0 ] && [ $rc != 100 ]; then
96+ echo " (Error) ${PKG_MGR_CMD} check-update produced the following error message(s):"
97+ echo " ${stderr_messages} "
98+ exit 1
99+ fi
100+ set -e
101+ fi
102+ fi
103+ ;;
104+ esac
105+ }
106+
107+ # Checks if packages are installed and installs them if not
108+ check_packages () {
109+ case ${ADJUSTED_ID} in
110+ debian)
111+ if ! dpkg -s " $@ " > /dev/null 2>&1 ; then
112+ pkg_manager_update
113+ ${INSTALL_CMD} " $@ "
114+ fi
115+ ;;
116+ rhel)
117+ if ! rpm -q " $@ " > /dev/null 2>&1 ; then
118+ pkg_manager_update
119+ ${INSTALL_CMD} " $@ "
120+ fi
121+ ;;
122+ esac
123+ }
124+
125+ if [ " ${ADJUSTED_ID} " = " rhel" ] && [ " ${VERSION_CODENAME-} " = " centos7" ]; then
126+ # As of 1 July 2024, mirrorlist.centos.org no longer exists.
127+ # Update the repo files to reference vault.centos.org.
128+ sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/* .repo
129+ sed -i s/^# .*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo
130+ sed -i s/^mirrorlist=http/# mirrorlist=http/g /etc/yum.repos.d/*.repo
131+ yum update -y
132+ check_packages epel-release
133+ fi
134+
82135# Clean up
83136clean_up () {
84137 local pkg
@@ -95,7 +148,6 @@ clean_up() {
95148 ;;
96149 esac
97150}
98- clean_up
99151
100152# Ensure that login shells get the correct path if the user updated the PATH using ENV.
101153rm -f /etc/profile.d/00-restore-env.sh
@@ -143,80 +195,33 @@ updaterc() {
143195 fi
144196}
145197
146-
147- pkg_manager_update () {
148- case $ADJUSTED_ID in
149- debian)
150- if [ " $( find /var/lib/apt/lists/* | wc -l) " = " 0" ]; then
151- echo " Running apt-get update..."
152- ${PKG_MGR_CMD} update -y
153- fi
154- ;;
155- rhel)
156- if [ ${PKG_MGR_CMD} = " microdnf" ]; then
157- if [ " $( ls /var/cache/yum/* 2> /dev/null | wc -l) " = 0 ]; then
158- echo " Running ${PKG_MGR_CMD} makecache ..."
159- ${PKG_MGR_CMD} makecache
160- fi
161- else
162- if [ " $( ls /var/cache/${PKG_MGR_CMD} /* 2> /dev/null | wc -l) " = 0 ]; then
163- echo " Running ${PKG_MGR_CMD} check-update ..."
164- set +e
165- stderr_messages=$( ${PKG_MGR_CMD} -q check-update 2>&1 )
166- rc=$?
167- # centos 7 sometimes returns a status of 100 when it apears to work.
168- if [ $rc != 0 ] && [ $rc != 100 ]; then
169- echo " (Error) ${PKG_MGR_CMD} check-update produced the following error message(s):"
170- echo " ${stderr_messages} "
171- exit 1
172- fi
173- set -e
174- fi
175- fi
176- ;;
177- esac
178- }
179-
180- # Checks if packages are installed and installs them if not
181- check_packages () {
182- case ${ADJUSTED_ID} in
183- debian)
184- if ! dpkg -s " $@ " > /dev/null 2>&1 ; then
185- pkg_manager_update
186- ${INSTALL_CMD} " $@ "
187- fi
188- ;;
189- rhel)
190- if ! rpm -q " $@ " > /dev/null 2>&1 ; then
191- pkg_manager_update
192- ${INSTALL_CMD} " $@ "
193- fi
194- ;;
195- esac
196- }
197-
198- # Use Microsoft JDK for everything but JDK 8 and 18 (unless specified differently with jdkDistro option)
199- get_jdk_distro () {
200- VERSION=" $1 "
201- if [ " ${JDK_DISTRO} " = " ms" ]; then
202- if echo " ${VERSION} " | grep -E ' ^8([\s\.]|$)' > /dev/null 2>&1 || echo " ${VERSION} " | grep -E ' ^18([\s\.]|$)' > /dev/null 2>&1 ; then
203- JDK_DISTRO=" tem"
204- fi
205- fi
206- }
207-
208198find_version_list () {
209199 prefix=" $1 "
210200 suffix=" $2 "
211201 install_type=$3
212202 ifLts=" $4 "
213203 version_list=$5
204+ java_ver=$6
205+
206+ check_packages jq
207+ all_versions=$( curl -s https://api.adoptium.net/v3/info/available_releases)
214208 if [ " ${ifLts} " = " true" ]; then
215- all_lts_versions=$( curl -s https://api.adoptium.net/v3/info/available_releases)
216- major_version=$( echo " $all_lts_versions " | jq -r ' .most_recent_lts' )
217- regex=" ${prefix} \\ K${major_version} \\ .?[0-9]*\\ .?[0-9]*${suffix} "
218- else
209+ major_version=$( echo " $all_versions " | jq -r ' .most_recent_lts' )
210+ elif [ " ${java_ver} " = " latest" ]; then
211+ major_version=$( echo " $all_versions " | jq -r ' .most_recent_feature_release' )
212+ else
213+ major_version=$( echo " $java_ver " | cut -d ' .' -f 1)
214+ fi
215+
216+ if [ " ${JDK_DISTRO} " = " ms" ]; then
217+ if [ " ${major_version} " = " 8" ] || [ " ${major_version} " = " 18" ] || [ " ${major_version} " = " 22" ]; then
218+ JDK_DISTRO=" tem"
219+ fi
220+ fi
221+ if [ " ${install_type} " != " java" ]; then
219222 regex=" ${prefix} \\ K[0-9]+\\ .?[0-9]*\\ .?[0-9]*${suffix} "
223+ else
224+ regex=" ${prefix} \\ K${major_version} \\ .?[0-9]*\\ .?[0-9]*${suffix}${JDK_DISTRO} \\ s*"
220225 fi
221226 declare -g ${version_list} =" $( su ${USERNAME} -c " . \$ {SDKMAN_DIR}/bin/sdkman-init.sh && sdk list ${install_type} 2>&1 | grep -oP \" ${regex} \" | tr -d ' ' | sort -rV" ) "
222227}
@@ -237,13 +242,12 @@ sdk_install() {
237242 elif [[ " ${pkg_vals} " =~ " ${install_type} " ]] && [ " ${requested_version} " = " latest" ]; then
238243 requested_version=" "
239244 elif [ " ${requested_version} " = " lts" ]; then
240- check_packages jq
241- find_version_list " $prefix " " $suffix " " $install_type " " true" version_list
245+ find_version_list " $prefix " " $suffix " " $install_type " " true" version_list " ${requested_version} "
242246 requested_version=" $( echo " ${version_list} " | head -n 1) "
243247 elif echo " ${requested_version} " | grep -oE " ${full_version_check} " > /dev/null 2>&1 ; then
244248 echo " ${requested_version} "
245249 else
246- find_version_list " $prefix " " $suffix " " $install_type " " false" version_list
250+ find_version_list " $prefix " " $suffix " " $install_type " " false" version_list " ${requested_version} "
247251 if [ " ${requested_version} " = " latest" ] || [ " ${requested_version} " = " current" ]; then
248252 requested_version=" $( echo " ${version_list} " | head -n 1) "
249253 else
@@ -301,17 +305,15 @@ if [ ! -d "${SDKMAN_DIR}" ]; then
301305 updaterc " export SDKMAN_DIR=${SDKMAN_DIR} \n. \$ {SDKMAN_DIR}/bin/sdkman-init.sh"
302306fi
303307
304- get_jdk_distro ${JAVA_VERSION}
305- sdk_install java ${JAVA_VERSION} " \\ s*" " (\\ .[a-z0-9]+)*-${JDK_DISTRO} \\ s*" " .*-[a-z]+$" " true"
308+ sdk_install java ${JAVA_VERSION} " \\ s*" " (\\ .[a-z0-9]+)*-" " .*-[a-z]+$" " true"
306309
307310# Additional java versions to be installed but not be set as default.
308311if [ ! -z " ${ADDITIONAL_VERSIONS} " ]; then
309312 OLDIFS=$IFS
310313 IFS=" ,"
311314 read -a additional_versions <<< " $ADDITIONAL_VERSIONS"
312315 for version in " ${additional_versions[@]} " ; do
313- get_jdk_distro ${version}
314- sdk_install java ${version} " \\ s*" " (\\ .[a-z0-9]+)*-${JDK_DISTRO} \\ s*" " .*-[a-z]+$" " false"
316+ sdk_install java ${version} " \\ s*" " (\\ .[a-z0-9]+)*-" " .*-[a-z]+$" " false"
315317 done
316318 IFS=$OLDIFS
317319 su ${USERNAME} -c " . ${SDKMAN_DIR} /bin/sdkman-init.sh && sdk default java ${JAVA_VERSION} "
0 commit comments