-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup-emscripten.sh
More file actions
57 lines (48 loc) · 1.72 KB
/
setup-emscripten.sh
File metadata and controls
57 lines (48 loc) · 1.72 KB
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
#!/usr/bin/env sh
set -e
set -x
HELPERSPATH="/helpers"
${HELPERSPATH}/apt-retry-install.sh git
mkdir -p /opt/emsdk
MAXRETRIES=30
COUNTER=0
SUCCESS=0
while [ $SUCCESS -eq 0 ] && [ $COUNTER -lt $MAXRETRIES ] ; do
echo "Retry #$COUNTER" >&2
if timeout --kill-after=5s 900s git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk ; then
SUCCESS=1
else
COUNTER=$(( $COUNTER + 1 ))
sleep 5s
fi
done
[ $SUCCESS -eq 1 ]
MAXRETRIES=30
COUNTER=0
SUCCESS=0
while [ $SUCCESS -eq 0 ] && [ $COUNTER -lt $MAXRETRIES ] ; do
echo "Retry #$COUNTER" >&2
if timeout --kill-after=5s 900s git -C /opt/emsdk pull ; then
SUCCESS=1
else
COUNTER=$(( $COUNTER + 1 ))
sleep 5s
fi
done
[ $SUCCESS -eq 1 ]
EMSDKVERSION="$(/helpers/wget-with-retries.sh https://raw.githubusercontent.com/dotnet/runtimelab/refs/heads/feature/NativeAOT-LLVM/eng/pipelines/runtimelab/install-emscripten.ps1 - | grep '^./emsdk install' | awk '{print $3}')"
[ "$EMSDKVERSION" != "" ]
if [ "$EMSDKVERSION" = "3.1.56" ] ; then
ARCHITECTURE="$(dpkg --print-architecture)"
if [ "${ARCHITECTURE}" = "arm64" ] ; then EMSDKVERSION="3.1.57" ; fi
fi
sed "s#returncode = run(\['tar', #returncode = run(['tar', '--no-same-owner', #g" -i /opt/emsdk/emsdk.py
#/opt/emsdk/emsdk install "$EMSDKVERSION"
python3 -c "import sys, os, socket; socket.setdefaulttimeout(10); \
orig_getaddrinfo = socket.getaddrinfo; \
socket.getaddrinfo = lambda *args, **kwargs: [info for info in orig_getaddrinfo(*args, **kwargs) if info[0] == socket.AF_INET]; \
sys.argv=['/opt/emsdk/emsdk.py','install','${EMSDKVERSION}']; \
__file__=sys.argv[0]; exec(open('/opt/emsdk/emsdk.py').read())"
/opt/emsdk/emsdk activate "$EMSDKVERSION"
# source /opt/emsdk/emsdk_env.sh -- but POSIX-compliant
. /opt/emsdk/emsdk_env.sh