|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# Load stack utils |
| 4 | +. /usr/bin/stack-utils |
| 5 | + |
| 6 | + |
| 7 | +function get_openjdk_url() { |
| 8 | + version="${1:?version is required}" |
| 9 | + arch="$(dpkg --print-architecture)" |
| 10 | + if [[ "${version}" == "8" ]]; then |
| 11 | + case "$arch" in |
| 12 | + 'amd64') |
| 13 | + downloadUrl='https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jdk_x64_linux_8u322b06.tar.gz'; |
| 14 | + ;; |
| 15 | + 'arm64') |
| 16 | + downloadUrl='https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jdk_aarch64_linux_8u322b06.tar.gz'; |
| 17 | + ;; |
| 18 | + *) echo >&2 "error: unsupported architecture: '$arch'"; exit 1 ;; |
| 19 | + esac; |
| 20 | + elif [[ "${version}" == "11" ]]; then |
| 21 | + case "$arch" in |
| 22 | + 'amd64') |
| 23 | + downloadUrl='https://github.com/AdoptOpenJDK/openjdk11-upstream-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jdk_x64_linux_11.0.14.1_1.tar.gz'; |
| 24 | + ;; |
| 25 | + 'arm64') |
| 26 | + downloadUrl='https://github.com/AdoptOpenJDK/openjdk11-upstream-binaries/releases/download/jdk-11.0.14.1%2B1/OpenJDK11U-jdk_aarch64_linux_11.0.14.1_1.tar.gz'; |
| 27 | + ;; |
| 28 | + *) echo >&2 "error: unsupported architecture: '$arch'"; exit 1;; |
| 29 | + esac |
| 30 | + elif [[ "${version}" == "17" ]]; then |
| 31 | + case "$arch" in |
| 32 | + 'amd64') |
| 33 | + downloadUrl='https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz'; |
| 34 | + ;; \ |
| 35 | + 'arm64') \ |
| 36 | + downloadUrl='https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-aarch64_bin.tar.gz'; |
| 37 | + ;; |
| 38 | + *) echo >&2 "error: unsupported architecture: '$arch'"; exit 1 ;; |
| 39 | + esac; |
| 40 | + elif [[ "${version}" == "18" ]]; then |
| 41 | + case "$arch" in |
| 42 | + 'amd64') |
| 43 | + downloadUrl='https://download.java.net/java/GA/jdk18/43f95e8614114aeaa8e8a5fcf20a682d/36/GPL/openjdk-18_linux-x64_bin.tar.gz'; |
| 44 | + ;; |
| 45 | + 'arm64') |
| 46 | + downloadUrl='https://download.java.net/java/GA/jdk18/43f95e8614114aeaa8e8a5fcf20a682d/36/GPL/openjdk-18_linux-aarch64_bin.tar.gz'; |
| 47 | + ;; |
| 48 | + *) echo >&2 "error: unsupported architecture: '$arch'"; exit 1 ;; |
| 49 | + esac; |
| 50 | + elif [[ "${version}" == "19" ]]; then |
| 51 | + case "$arch" in |
| 52 | + 'amd64') |
| 53 | + downloadUrl='https://download.java.net/java/early_access/jdk19/10/GPL/openjdk-19-ea+10_linux-x64_bin.tar.gz'; |
| 54 | + ;; |
| 55 | + 'arm64') |
| 56 | + downloadUrl='https://download.java.net/java/early_access/jdk19/10/GPL/openjdk-19-ea+10_linux-aarch64_bin.tar.gz'; |
| 57 | + ;; |
| 58 | + *) echo >&2 "error: unsupported architecture: '$arch'"; exit 1 ;; |
| 59 | + esac; |
| 60 | + else |
| 61 | + echo >&2 "error: unsupported version: '$version'" |
| 62 | + exit 1 |
| 63 | + fi |
| 64 | +} |
| 65 | + |
| 66 | +# Implement build function |
| 67 | +function build() { |
| 68 | + generate-stack-path |
| 69 | + get_openjdk_url "${STACK_VERSION}" |
| 70 | + curl -fsSL -o openjdk.tar.gz "${downloadUrl}" |
| 71 | + tar -xvzf openjdk.tar.gz |
| 72 | + cp -rf *jdk-"${STACK_VERSION}"*/* "${DATA_DIR}" |
| 73 | + rm -rf openjdk.tar.gz *jdk-"${STACK_VERSION}"* |
| 74 | + mkdir -p "${DATA_DIR}"/env |
| 75 | + echo "/opt/drycc/java" > "${DATA_DIR}"/env/JAVA_HOME |
| 76 | + cat << EOF > ${PROFILE_DIR}/${STACK_NAME}.sh |
| 77 | +export LD_LIBRARY_PATH="\${JAVA_HOME}/jre/lib/${OS_ARCH}/server:\${LD_LIBRARY_PATH}" |
| 78 | +EOF |
| 79 | + |
| 80 | +} |
| 81 | + |
| 82 | +# call build stack |
| 83 | +build-stack "${1}" |
0 commit comments