add a wasm bazel toolchain (#603)
This commit is contained in:
63
scripts/update_bazel_workspace.sh
Executable file
63
scripts/update_bazel_workspace.sh
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
# This script will update emsdk/bazel/WORKSPACE to the latest version of
|
||||
# emscripten. It reads emsdk/emscripten-releases-tags.txt to get the latest
|
||||
# version number. Then, it downloads the prebuilts for that version and computes
|
||||
# the sha256sum for the archive. It then puts all this information into the
|
||||
# emsdk/bazel/WORKSPACE file.
|
||||
|
||||
ERR=0
|
||||
# Attempt to change to the emsdk root directory
|
||||
cd $(dirname $0)/..
|
||||
|
||||
# If the previous command succeeded. We are in the emsdk root. Check to make
|
||||
# sure the files and directories we need are present.
|
||||
if [[ $? = 0 ]]; then
|
||||
if [[ ! -f emscripten-releases-tags.txt ]]; then
|
||||
echo "Cannot find emscripten-releases-tags.txt."
|
||||
ERR=1
|
||||
fi
|
||||
|
||||
if [[ ! -d bazel ]]; then
|
||||
echo "Cannot find the bazel directory."
|
||||
ERR=1
|
||||
elif [[ ! -f bazel/WORKSPACE ]]; then
|
||||
echo "Cannot find bazel/WORKSPACE."
|
||||
ERR=1
|
||||
fi
|
||||
else
|
||||
ERR=1
|
||||
fi
|
||||
|
||||
if [[ $ERR = 1 ]]; then
|
||||
echo "Unable to cd into the emsdk root directory."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
URL1=https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/
|
||||
URL2=/wasm-binaries.tbz2
|
||||
|
||||
# Get the latest version number from emscripten-releases-tag.txt.
|
||||
VER=$(grep -oP '(?<=latest\": \")([\d\.]+)(?=\")' \
|
||||
emscripten-releases-tags.txt \
|
||||
| sed --expression "s/\./\\\./g")
|
||||
# Based on the latest version number, get the commit hash for that version.
|
||||
HASH=$(grep "${VER}" emscripten-releases-tags.txt \
|
||||
| grep -v latest \
|
||||
| cut -f4 -d\")
|
||||
# Download and compute the sha256sum for the archive with the prebuilts.
|
||||
SHA=$(curl "${URL1}${HASH}${URL2}" 2>/dev/null \
|
||||
| sha256sum \
|
||||
| awk '{print $1}')
|
||||
# Get the line number on which the sha256 sum lives for emscripten.
|
||||
# This will always be one line after the name of the rule.
|
||||
SHALINE=$(($(grep -n 'name = "emscripten"' bazel/WORKSPACE \
|
||||
| sed 's/^\([[:digit:]]*\).*$/\1/')+1))
|
||||
|
||||
# Insert the new commit hash into the url.
|
||||
sed -i "s!\(${URL1}\)\([[:alnum:]]*\)\(${URL2}\)!\1${HASH}\3!" bazel/WORKSPACE
|
||||
# Insert the new version number.
|
||||
sed -i "s!\(# emscripten \)\(.*\)!\1${VER}!" bazel/WORKSPACE
|
||||
# Insert the new sha256 sum.
|
||||
sed -i "${SHALINE}s!\"[[:alnum:]]*\"!\"${SHA}\"!" bazel/WORKSPACE
|
||||
|
||||
echo "Done!"
|
||||
Reference in New Issue
Block a user