Skip to content

Commit ecc2fa8

Browse files
committed
feat(stacks): add java
1 parent 09d83bb commit ecc2fa8

1 file changed

Lines changed: 83 additions & 0 deletions

File tree

stacks/java/build.sh

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
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

Comments
 (0)