-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlmod-build.sh
executable file
·60 lines (51 loc) · 1.69 KB
/
lmod-build.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env bash
set -e
# generate lua script to be used my Lmod
_generate_lua() {
cat >> /output/${JAVA_VERSION}.lua <<EOF
help([[
java version "${JAVA_VERSION}"
Java(TM) SE Runtime Environment
Java HotSpot(TM) 64-Bit Server VM
]])
local version = myModuleVersion()
local base = "${LMOD_MODULE_DIR}"
local pkgName = myModuleName()
local pkg = pathJoin(base,pkgName,"jdk" .. version,"bin")
prepend_path("PATH", pkg)
prepend_path("PATH", pathJoin(base,pkgName,"jdk" .. version,"jre","bin"))
setenv( "JAVA_HOME", pathJoin(base,pkgName,"jdk" .. version))
setenv( "JRE_HOME", pathJoin(base,pkgName,"jdk" .. version,"jre"))
EOF
}
# build java ${JAVA_VERSION}
WHICH_JAVA=$(echo $JAVA_VERSION | cut -c1-3)
if [ "${WHICH_JAVA}" == "1.8" ]; then
URL=$(curl -s https://lv.binarybabel.org/catalog-api/java/jdk8.txt?p=downloads.tgz)
elif [ "${WHICH_JAVA}" == "1.7" ]; then
URL=$(curl -s https://lv.binarybabel.org/catalog-api/java/jdk7.txt?p=downloads.tgz)
else
echo "ERROR: requested version ${JAVA_VERSION} in not available"
exit 1
fi
mkdir -p ${LMOD_MODULE_DIR}/java
cd ${LMOD_MODULE_DIR}/java
TAR_GZ_FILE=$(echo $URL | rev | cut -d '/' -f 1 | rev)
curl -LOH 'Cookie: oraclelicense=accept-securebackup-cookie' "${URL}"
tar -xzf $TAR_GZ_FILE
rm -f $TAR_GZ_FILE
cd -
# display output tree
echo "### contents of ${LMOD_MODULE_DIR}/java/jdk${JAVA_VERSION} ###"
tree -a ${LMOD_MODULE_DIR}/java/jdk${JAVA_VERSION}
# test
echo "### TEST: java -version ###"
${LMOD_MODULE_DIR}/java/jdk${JAVA_VERSION}/bin/java -version
# generate tar.gz
cd ${LMOD_MODULE_DIR}/java
tar -czf jdk${JAVA_VERSION}.tar.gz jdk${JAVA_VERSION}
cp jdk${JAVA_VERSION}.tar.gz /output
# generate lua
_generate_lua
exec "${@}"
exit 0