File prepare_vendor.sh of Package nodejs-signal-ringrtc
#!/bin/bash
SIGNAL_URL=$(rpmspec -P *.spec | grep Source1 | sed -e 's/Source1:[ ]*//g')
SIGNAL_TARBALL=$(basename $SIGNAL_URL)
SIGNAL_PKGVERSION=$(rpmspec -P *.spec | grep Version | sed -e 's/Version:[ ]*//g')
SIGNAL_PKGNAME="ringrtc"
SIGNAL_PKGDIR="$(pwd)"
SIGNAL_TMPDIR="$(mktemp --tmpdir -d signal-ringrtc-XXXXXXXX)"
SIGNAL_PATH="${SIGNAL_TMPDIR}/${SIGNAL_PKGNAME}-${SIGNAL_PKGVERSION}"
echo "URL: ${SIGNAL_URL}"
echo "TARBALL: ${SIGNAL_TARBALL}"
echo "NAME: ${SIGNAL_PKGNAME}"
echo "VERSION: ${SIGNAL_PKGVERSION}"
echo "PATH: ${SIGNAL_PATH}"
export save_PATH="${PATH}"
cleanup_tmpdir() {
popd 2>/dev/null || true
rm -rf "${SIGNAL_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 "${SIGNAL_TARBALL}" ]; then
wget "${SIGNAL_URL}"
fi
tar -xf "${SIGNAL_TARBALL}" -C "${SIGNAL_TMPDIR}"
pushd "${SIGNAL_PATH}" || cleanup_and_exit 1
#################
# RUST
#################
pushd src/rust || cleanup_and_exit 1
cargo vendor
if [ $? -ne 0 ]; then
echo "ERROR: Failed to get cargo vendor packages"
cleanup_and_exit 1
fi
popd || cleanup_and_exit 1# src/rust
echo '>>>>>> Remove vendored binaries'
find . -name "*.jar" -print -delete
find . -name "*.exe" -print -delete
find . -name "*.node" -print -delete
find . -name "*.dll" -print -delete
find . -name "*.dylib" -print -delete
find . -name "*.so" -print -delete
find . -name "*.o" -print -delete
find . -name "*.a" -print -delete
find -type f | sponge | xargs -P$(nproc) -- sh -c 'file "$@" | grep -v '\'' .*script'\'' | grep '\'' .*executable'\'' | tee /dev/stderr | sed '\''s/: .*//'\'' | xargs rm -fv'
echo ">>>>>> Package vendor files"
rm -f "$SIGNAL_PKGDIR/vendor.tar.xz"
XZ_OPT="-T$(nproc) -e9 -vv" tar -vvcJf "$SIGNAL_PKGDIR/vendor.tar.xz" src/rust/vendor
if [ $? -ne 0 ]; then
cleanup_and_exit 1
fi
popd || cleanup_and_exit 1
cleanup_and_exit 0