File prepare.sh of Package element-web

#!/bin/bash 

set -ex

version=$1
sed -i -e "s/^\(Version: *\)[^ ]*$/\1${version}/" element-web.spec

oldwd="$(pwd)"

# cleanup old stuff
(find -maxdepth 1 -type d -name 'element-web-*' | xargs rm -r) ||:

version=$(grep "Version:" element-web.spec | awk '{print $2}')
last_packaged_version=$(osc cat devel:languages:nodejs/element-web/element-web.spec | grep "^Version:" | awk '{print $NF}')

osc rm --force element-web-*.tar.gz || :
wget -c https://github.com/vector-im/element-web/archive/v${version}.tar.gz -O element-web-${version}.tar.gz
wget https://meet.element.io/libs/external_api.min.js -O jitsi_external_api.min.js
osc add element-web-*.tar.gz

#zypper install yarn cargo gcc-c++ sqlcipher-devel libsecret-devel

rm -rf "element-web-${version}"
tar xzvf element-web-${version}.tar.gz
cd element-web-${version}
changes=$(grep "^Changes in \[$last_packaged_version\]" -B10000 CHANGELOG.md |  head -n -2 | sed -e '/^==*$/d' -e 's/Changes in \[\([^\[]*\)\].*/Version \1/' -e 's/^\([^-].*\)$/  \1/' -e 's/\[.*\](\(.*\))/\1/g' -e 's/^ *Version /Version /g')

tmpdir="$(mktemp -d)"
mkdir -pv "$tmpdir/home"
oldhome="$HOME"
export HOME="$tmpdir/home"

yarn cache clean
rm -rf node_modules/
#cp "$oldwd/yarn.lock" ./
yarn install  --frozen-lockfile --ignore-engines --ignore-platform  --ignore-scripts --link-duplicates || : # this will download the packages

#Remove non-free binaries, starting with a few common file extensions
find . -name '*.node' -print -delete
find . -name '*.jar' -print -delete
find . -name '*.dll' -print -delete
find . -name '*.exe' -print -delete
find . -name '*.dylib' -print -delete
find . -name '*.so' -print -delete
find . -name '*.o' -print -delete
find . -name '*.a' -print -delete

#now detect the rest. This should catch all ELFs that may be executed. We use sponge to avoid a race condition between find and rm
find . -type f| sponge |\
    xargs -P"$(nproc)" -- sh -c 'file -S "$@" | grep -v '\'': .*script'\'' | grep '\'': .*executable'\'' | tee /dev/stderr | sed '\''s/: .*//'\'' | xargs rm -fv'

rm -f "${oldwd}/vendor.tar.zst"
ZSTD_CLEVEL=19 ZSTD_NBTHREADS=$(nproc) tar --zstd --sort=name -Scf "${oldwd}/vendor.tar.zst" node_modules
export HOME="$oldhome"

cd "$oldwd"
rm -rf "$tmpdir"
echo -e "\n\nDONE creating npm offline dependencies archive 'vendor.tar.zst'"

read -p "Write changes?"
osc vc -m "${changes}" element-web.changes
dos2unix element-web.changes
openSUSE Build Service is sponsored by