set -ex hide_output() { set +x on_err=" echo ERROR: An error was encountered with the build. cat /tmp/build.log exit 1 " trap "$on_err" ERR bash -c "while true; do sleep 30; echo \$(date) - building ...; done" & PING_LOOP_PID=$! $@ &> /tmp/build.log trap - ERR kill $PING_LOOP_PID rm -f /tmp/build.log set -x } # Download last known good emscripten from WebAssembly waterfall BUILD=$(curl -fL https://storage.googleapis.com/wasm-llvm/builds/linux/lkgr.json | \ jq '.build | tonumber') curl -sL https://storage.googleapis.com/wasm-llvm/builds/linux/$BUILD/wasm-binaries.tbz2 | \ hide_output tar xvkj # node 8 is required to run wasm cd / curl -sL https://nodejs.org/dist/v8.0.0/node-v8.0.0-linux-x64.tar.xz | \ tar -xJ # Make emscripten use wasm-ready node and LLVM tools echo "EMSCRIPTEN_ROOT = '/wasm-install/emscripten'" >> /root/.emscripten echo "NODE_JS='/usr/local/bin/node'" >> /root/.emscripten echo "LLVM_ROOT='/wasm-install/bin'" >> /root/.emscripten echo "BINARYEN_ROOT = '/wasm-install'" >> /root/.emscripten echo "COMPILER_ENGINE = NODE_JS" >> /root/.emscripten echo "JS_ENGINES = [NODE_JS]" >> /root/.emscripten