|
#!/bin/sh |
|
JDK_VERSION='17' |
|
SUDO_COMMAND='gsudo ' |
|
INSTALL_DIR="${HOME}/Applications" |
|
JDK_DIR="/c/Program Files/Eclipse Adoptium" |
|
ADOPTIUM_DIR="C:\\Program Files\\Eclipse Adoptium" |
|
|
|
if [ ! -z "${SUDO_COMMAND}" ] |
|
then |
|
echo "The script might prompt for elevated privileges. This is because" |
|
echo "sudo is used to gain root permissions to manipulate the software package" |
|
echo |
|
fi |
|
|
|
while getopts ':v:' OPTION; do |
|
case "$OPTION" in |
|
v) |
|
JDK_VERSION=${OPTARG} |
|
echo "JDK requested is ${JDK_VERSION}" |
|
shift "$(($OPTIND -1))" |
|
;; |
|
?) |
|
# echo "Usage: $(basename $0) [-v] <version> [-jdk]" |
|
;; |
|
esac |
|
done |
|
|
|
JDK_URI="https://api.adoptium.net/v3/binary/latest/${JDK_VERSION}/ga/windows/x64/jdk/hotspot/normal/eclipse/" |
|
JDK_STRING="project=jdk" |
|
RELEASE_INFO="https://api.adoptium.net/v3/assets/feature_releases/${JDK_VERSION}/ga/" |
|
RELEASE_STRING="architecture=x64&heap_size=normal&image_type=jdk&os=windows&page=0&page_size=10&project=jdk&sort_method=DEFAULT&sort_order=DESC&vendor=eclipse" |
|
|
|
# download jdk |
|
TMPFILE=`mktemp` |
|
TMPJSON=`mktemp` |
|
|
|
echo "Downloading ${JDK_URI}..." |
|
curl -G -H 'accept: */*' -L "${JDK_URI}" -d "${JDK_STRING}" > "${TMPFILE}" |
|
# query versions |
|
curl -G -H 'accept: application/json' -L "${RELEASE_INFO}" -d "${RELEASE_STRING}" > "${TMPJSON}" |
|
|
|
# checksums |
|
EXPECTED_SHA256=`jq -r '.[0].binaries[0].package.checksum' "${TMPJSON}"` |
|
REAL_SHA256=`shasum -a 256 "${TMPFILE}" |cut -d " " -f 1` |
|
echo "Expected SHA256 checksum: ${EXPECTED_SHA256}" |
|
echo "File SHA256 checksum: ${REAL_SHA256}" |
|
|
|
if [ "${EXPECTED_SHA256}" != "${REAL_SHA256}" ]; then |
|
echo "Cleaning up..." |
|
rm "${TMPFILE}" |
|
echo "Checksum mismatch (using URI below)! Exiting." |
|
echo "$RELEASE_INFO" |
|
exit |
|
fi |
|
|
|
# unpack to install directory |
|
RELEASE_NAME=`jq -r '.[0].release_name' ${TMPJSON}` |
|
|
|
echo "Unpacking ${RELEASE_NAME}" |
|
cd ${INSTALL_DIR} |
|
rm -r "${RELEASE_NAME}" |
|
unzip "${TMPFILE}" >/dev/null 2>&1 |
|
|
|
# recreate symlink |
|
rm jdk-${JDK_VERSION}.jdk |
|
${SUDO_COMMAND}powershell New-Item -ItemType SymbolicLink -Path jdk-${JDK_VERSION}.jdk -Target ${RELEASE_NAME} |
|
|
|
if [[ $1 == "-jdk" ]]; then |
|
# unpack to JDK directory |
|
echo "Unpacking ${RELEASE_NAME} to ${ADOPTIUM_DIR}" |
|
cd "${JDK_DIR}" && ${SUDO_COMMAND}unzip "${TMPFILE}" >/dev/null 2>&1 && ${SUDO_COMMAND}mv "${RELEASE_NAME}" "${RELEASE_NAME}-hotspot" |
|
echo "Set env JAVA_HOME to ${ADOPTIUM_DIR}\\${RELEASE_NAME}-hotspot" |
|
${SUDO_COMMAND}powershell "[System.Environment]::SetEnvironmentVariable('JAVA_HOME','${ADOPTIUM_DIR}\\${RELEASE_NAME}-hotspot','Machine')" |
|
fi |