File prepare-emscripten-vendor.sh of Package nodejs-vscode-tree-sitter-wasm
#!/bin/bash
# dnf install curl fdupes gzip moreutils tar
PKGDIR="$(pwd)"
TMPDIR="$(mktemp --tmpdir -d emscripten-XXXXXXXX)"
version=3.1.64
wget -nc https://github.com/emscripten-core/emscripten/archive/refs/tags/${version}/emscripten-${version}.tar.gz
cd $TMPDIR
tar --gzip -xvvf ${PKGDIR}/emscripten-${version}.tar.gz
cd emscripten-${version}
npm install --ignore-scripts --verbose
cd node_modules
echo ">>>>>> Remove non-free binaries"
find . -type f -name "*.jar" -print -delete
find . -type f -name "*.pyc" -print -delete
find . -type f -name "*.pyd" -print -delete
find . -type f -name "*.exe" -print -delete
find . -type f -name "*.node" -print -delete
find . -type f -name "*.dll" -print -delete
find . -type f -name "*.dylib" -print -delete
find . -type f -name "*.so" -print -delete
find . -type f -name "*.o" -print -delete
find . -type f -name "*.a" -print -delete
#We use sponge to avoid a race condition between find and rm
find -type f | sponge | xargs -P$(nproc) -- sh -c 'file "$@" | grep -v '\'' .*script'\'' | grep '\'' .*executable'\'' | tee /dev/stderr | sed '\''s/: .*//'\'' | xargs rm -fv'
cd ..
ZSTD_CLEVEL=19 ZSTD_NBTHREADS=$(nproc) tar --zstd --sort=name -vvScf ${PKGDIR}/emscripten-vendor.tar.zst node_modules
cd /tmp
rm -rf "${TMPDIR}"