File prepare_vendor.sh of Package nodejs-vscode-tree-sitter-wasm

#!/bin/sh -eux

# dnf install cargo-vendor-filterer curl gzip moreutils tar

PKGDIR="$(pwd)"
TMPDIR="$(mktemp --tmpdir -d tree-sitter-XXXXXXXX)"

version=$(rpmspec -P ./*.spec | grep ^Version | sed -e 's/Version:[ ]*//g')

wget -nc https://github.com/microsoft/vscode-tree-sitter-wasm/archive/refs/tags/v${version}.tar.gz


tree_sitter_version=$(grep '%global tree_sitter_version' *.spec | sed -e 's/^.*version *//')

cd $TMPDIR

tar -xvvf "${PKGDIR}/v${version}.tar.gz"

cd vscode-tree-sitter-wasm-${version}


npm ci --ignore-scripts --verbose

INI_SHA=$( grep -A 5 'tree-sitter-ini' build/main.ts | grep -oE '[0-9a-f]{40}')
cd node_modules
curl -L https://github.com/justinmk/tree-sitter-ini/archive/"${INI_SHA}".tar.gz | tar --gzip -xvv
mv -v tree-sitter-ini-* tree-sitter-ini
cd ..



curl -L https://github.com/tree-sitter/tree-sitter/archive/refs/tags/v${tree_sitter_version}/tree-sitter-${tree_sitter_version}.tar.gz | tar --gzip -xvv

mv -v tree-sitter-* tree-sitter
cd tree-sitter


mkdir -pv .cargo
cargo vendor-filterer --platform='*-unknown-linux-gnu' --platform='*-unknown-linux-gnueabihf' --all-features > .cargo/config

cd lib/binding_web
npm ci  --verbose --ignore-scripts

cd ../../..



echo ">>>>>> Remove non-free binaries"

find . -type f -name "*.jar" -print -delete
find . -type f -name "*.wasm" -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'



ZSTD_CLEVEL=19 ZSTD_NBTHREADS=$(nproc) tar --zstd --sort=name -vvScf  ${PKGDIR}/vendor.tar.zst node_modules tree-sitter

cd /tmp
rm -rf "${TMPDIR}"
openSUSE Build Service is sponsored by