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
openSUSE Build Service is sponsored by