File radarr-offline.sh of Package radarr

#!/bin/sh

NAME=Radarr
VERSION=$(cat radarr.spec | grep Version: | awk -e '{print $2}')
DOTNET_VERSIONS=("6.0.33" "6.0.32" "6.0.30" "6.0.27" "6.0.22") 
#DOTNET_HOST_VERSION=DOTNET_VERSION
DOTNET_CLI_TELEMETRY_OPTOUT="1"

BUILD_PART="all"
if [ "$1" = "--dev" ];
then
    echo "dev mode"
    ZSTD_OPTS=""
    ZSTD_LEVEL=10
else
    ZSTD_OPTS="--ultra"
    ZSTD_LEVEL=14
    if [ "$1" != "" ];
    then
	BUILD_PART="$1"
    fi
fi

# Retrieve neccessary .NET NuGet packages for offline building
tar xf $NAME-${VERSION}.tar.gz
pushd $NAME-${VERSION}
rm global.json
if [ "$BUILD_PART" == "all" ] || [ "$BUILD_PART" == "nupkgs" ];
then
    mkdir $NAME-nupkgs
    dotnet restore --lock-file-path "../$NAME-packages.lock.json" --use-lock-file --packages ./$NAME-nupkgs src/$NAME.sln
    mv "src/$NAME-packages.lock.json" ..
fi
if [ "$BUILD_PART" ==  "all" ] || [ "$BUILD_PART" == "nupkgs2" ];
then
    mkdir $NAME-nupkgs2
    pushd $NAME-nupkgs2
# Download some packages required by dotnet
    curl -L https://www.nuget.org/api/v2/package/runtime.any.System.Globalization/4.3.0 > runtime.any.system.globalization.4.3.0.nupkg
    curl -L https://www.nuget.org/api/v2/package/runtime.any.System.Runtime/4.3.0 > runtime.any.system.runtime.4.3.0.nupkg
    curl -L https://www.nuget.org/api/v2/package/System.Private.Uri/4.3.0 > system.private.uri.4.3.0.nupkg
    curl -L https://www.nuget.org/api/v2/package/runtime.unix.System.Private.Uri/4.3.0 > runtime.unix.system.private.uri.4.3.0.nupkg
    for DOTNET_VERSION in "${DOTNET_VERSIONS[@]}"; do
	DOTNET_HOST_VERSION=${DOTNET_VERSION}
	echo "Downloading for dotnet version $DOTNET_VERSION"
	# x64
	curl -L https://www.nuget.org/api/v2/package/Microsoft.NETCore.App.Runtime.linux-x64/${DOTNET_VERSION} >  microsoft.netcore.app.runtime.linux-x64.${DOTNET_VERSION}.nupkg
	curl -L https://www.nuget.org/api/v2/package/Microsoft.NETCore.App.Host.linux-x64/${DOTNET_HOST_VERSION} >  microsoft.netcore.app.host.linux-x64.${DOTNET_HOST_VERSION}.nupkg
	curl -L https://www.nuget.org/api/v2/package/Microsoft.AspNetCore.App.Runtime.linux-x64/${DOTNET_VERSION} > microsoft.aspnetcore.app.runtime.linux-x64.${DOTNET_VERSION}.nupkg
	# arm64
	curl -L https://www.nuget.org/api/v2/package/Microsoft.NETCore.App.Runtime.linux-arm64/${DOTNET_VERSION} >  microsoft.netcore.app.runtime.linux-arm64.${DOTNET_VERSION}.nupkg
	curl -L https://www.nuget.org/api/v2/package/Microsoft.NETCore.App.Host.linux-arm64/${DOTNET_HOST_VERSION} >  microsoft.netcore.app.host.linux-arm64.${DOTNET_HOST_VERSION}.nupkg
	curl -L https://www.nuget.org/api/v2/package/Microsoft.AspNetCore.App.Runtime.linux-arm64/${DOTNET_VERSION} > microsoft.aspnetcore.app.runtime.linux-arm64.${DOTNET_VERSION}.nupkg
    done
    popd
fi
if [ "$BUILD_PART" == "all" ] || [ "$BUILD_PART" == "nupkgs" ];
then
    tar --checkpoint=.100 -I "zstd $ZSTD_OPTS -T0 -$ZSTD_LEVEL" -cf ../$NAME-nupkgs.tar.zst $NAME-nupkgs
fi
if [ "$BUILD_PART" == "all" ] || [ "$BUILD_PART" == "nupkgs2" ];
then
    tar --checkpoint=.100 -I "zstd $ZSTD_OPTS -T0 -$ZSTD_LEVEL" -cf ../$NAME-nupkgs2.tar.zst $NAME-nupkgs2
fi
popd

# Retrieve neccessary NPM packages for offline building
if [ "$BUILD_PART" == "all" ] || [ "$BUILD_PART" == "yarn" ];
then
    pushd $NAME-${VERSION}
    mkdir $NAME-yarn
    yarn install --cache-folder ./$NAME-yarn --frozen-lockfile --network-timeout 120000
    tar --checkpoint=.100 -I 'zstd $ZSTD_OPTS -T0 -$ZSTD_LEVEL' -cf ../$NAME-yarn.tar.zst $NAME-yarn
    cp -p yarn.lock ../$NAME-yarn.lock
    popd
fi
openSUSE Build Service is sponsored by