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