When the version number string is multi-digits ex: openjdk11
"${SET_JDK_VERSION: -1}" returns '1' which is incorrect.
The change fixes version number extraction for the string
passed to env variable $SET_JDK_VERSION.
Also update the regex to handle values with special chars.
Issue: RELENG-1853
Change-Id: I52c49fec007bad70d4a42d4c20a45b35fec3997c
Signed-off-by: Anil Belur <abelur@linuxfoundation.org>
elif [[ "${SET_JDK_VERSION//[a-zA-Z]/}" = "10" ]]; then
export JAVA_HOME="/opt/jdk-10.0.2"
else
elif [[ "${SET_JDK_VERSION//[a-zA-Z]/}" = "10" ]]; then
export JAVA_HOME="/opt/jdk-10.0.2"
else
- export JAVA_HOME="/usr/lib/jvm/java-1.${SET_JDK_VERSION//[a-zA-Z]/}.0-openjdk"
+ export JAVA_HOME="/usr/lib/jvm/java-1.${SET_JDK_VERSION//[a-zA-Z:-]/}.0-openjdk"
fi
sudo /usr/sbin/alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
sudo /usr/sbin/alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
fi
sudo /usr/sbin/alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
sudo /usr/sbin/alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
- export JAVA_HOME="/usr/lib/jvm/java-${SET_JDK_VERSION: -1}-openjdk-amd64"
+ export JAVA_HOME="/usr/lib/jvm/java-${SET_JDK_VERSION//[a-zA-Z:-]/}-openjdk-amd64"
sudo /usr/bin/update-alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
sudo /usr/bin/update-alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
sudo /usr/bin/update-alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
sudo /usr/bin/update-alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
sudo /usr/bin/update-alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
sudo /usr/bin/update-alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1