Sonarr/.github/actions/package/package.sh

68 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
outputFolder=_output
artifactsFolder=_artifacts
uiFolder="$outputFolder/UI"
framework="${FRAMEWORK:=net6.0}"
rm -rf $artifactsFolder
mkdir $artifactsFolder
for runtime in _output/*
do
name="${runtime##*/}"
folderName="$runtime/$framework"
sonarrFolder="$folderName/Sonarr"
archiveName="Sonarr.$BRANCH.$SONARR_VERSION.$name"
if [[ "$name" == 'UI' ]]; then
continue
fi
echo "Creating package for $name"
echo "Copying UI"
cp -r $uiFolder $sonarrFolder
echo "Setting permissions"
find $sonarrFolder -name "ffprobe" -exec chmod a+x {} \;
find $sonarrFolder -name "Sonarr" -exec chmod a+x {} \;
find $sonarrFolder -name "Sonarr.Update" -exec chmod a+x {} \;
if [[ "$name" == *"osx"* ]]; then
echo "Creating macOS package"
packageName="$name-app"
packageFolder="$outputFolder/$packageName"
rm -rf $packageFolder
mkdir $packageFolder
cp -r distribution/macOS/Sonarr.app $packageFolder
mkdir -p $packageFolder/Sonarr.app/Contents/MacOS
echo "Copying Binaries"
cp -r $sonarrFolder/* $packageFolder/Sonarr.app/Contents/MacOS
echo "Removing Update Folder"
rm -r $packageFolder/Sonarr.app/Contents/MacOS/Sonarr.Update
echo "Packaging macOS app Artifact"
(cd $packageFolder; zip -rq "../../$artifactsFolder/$archiveName-app.zip" ./Sonarr.app)
fi
echo "Packaging Artifact"
if [[ "$name" == *"linux"* ]] || [[ "$name" == *"osx"* ]] || [[ "$name" == *"freebsd"* ]]; then
tar -zcf "./$artifactsFolder/$archiveName.tar.gz" -C $folderName Sonarr
fi
if [[ "$name" == *"win"* ]]; then
if [ "$RUNNER_OS" = "Windows" ]
then
(cd $folderName; 7z a -tzip "../../../$artifactsFolder/$archiveName.zip" ./Sonarr)
else
(cd $folderName; zip -rq "../../../$artifactsFolder/$archiveName.zip" ./Sonarr)
fi
fi
done