SHA256
1
0
forked from pool/asar
asar/prepare_vendor.sh
Bruno Pitrus 42208b5c35 - New upstream release 3.2.11
* complete rewrite of the program in Typescript
  * ensure symlinks do not write unexpectedly (gh#electron/asar#322)
- Run test suite in %check

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/asar?expand=0&rev=26
2024-09-10 21:05:38 +00:00

78 lines
2.1 KiB
Bash

#!/bin/bash -eux
ASAR_PKGDIR="$(pwd)"
ASAR_PKGVERSION=$(<./*.spec grep ^Version | sed -e 's/Version:[ ]*//g')
ASAR_URL="https://github.com/electron/asar/archive/refs/tags/v${ASAR_PKGVERSION}.tar.gz"
ASAR_TARBALL=v${ASAR_PKGVERSION}.tar.gz
ASAR_TMPDIR=$(mktemp --tmpdir -d asar-XXXXXXXX)
ASAR_PATH="$ASAR_TMPDIR/asar-$ASAR_PKGVERSION"
echo "VERSION: $ASAR_PKGVERSION"
echo "PATH: $ASAR_PATH"
cleanup_tmpdir()
{
popd 2> /dev/null || exit 1
rm -rf "$ASAR_TMPDIR"
}
trap cleanup_tmpdir SIGINT
cleanup_and_exit()
{
cleanup_tmpdir
if test "$1" = 0 -o -z "$1"; then
exit 0
else
exit "$1"
fi
}
if [ ! -w "$ASAR_TARBALL" ]; then
wget "$ASAR_URL"
fi
tar -xf "$ASAR_TARBALL" -C "$ASAR_TMPDIR"
pushd "$ASAR_PATH" || cleanup_and_exit 1
echo ">>>>>> Install npm modules"
yarn install --frozen-lockfile --ignore-engines --ignore-platform --ignore-scripts --link-duplicates
ret=$?
if [ $ret -ne 0 ]; then
echo "ERROR: yarn install failed"
cleanup_and_exit 1
fi
echo ">>>>>> Cleanup object files"
find node_modules/ -name "*.node" -print -delete
find node_modules/ -name "*.wasm" -print -delete
find node_modules/ -name "*.jar" -print -delete
find node_modules/ -name "*.dll" -print -delete
find node_modules/ -name "*.exe" -print -delete
find node_modules/ -name "*.dylib" -print -delete
find node_modules/ -name "*.so" -print -delete
find node_modules/ -name "*.o" -print -delete
find node_modules/ -name "*.a" -print -delete
echo '>>>>>> Remove vendored binaries'
#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'
echo ">>>>>> Remove empty directories"
find . -type d -empty -print -delete
echo ">>>>>> Package vendor files"
rm -f "${ASAR_PKGDIR}/vendor.tar.zst"
ZSTD_CLEVEL=19 ZSTD_NBTHREADS=$(nproc) tar --zstd --sort=name -vvScf "${ASAR_PKGDIR}/vendor.tar.zst" node_modules
if [ $? -ne 0 ]; then
cleanup_and_exit 1
fi
echo "vendor $(du -sh "${ASAR_PKGDIR}/vendor.tar.zst")"