2023-05-14 10:23:44 +03:00
|
|
|
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
|
2024-05-01 18:25:43 +03:00
|
|
|
FRAMEWORK="net8.0"
|
2023-05-14 10:23:44 +03:00
|
|
|
PLATFORM=$1
|
2025-01-29 20:14:22 -08:00
|
|
|
ARCHITECTURE="${2:-x64}"
|
2023-05-14 10:23:44 +03:00
|
|
|
|
|
|
|
if [ "$PLATFORM" = "Windows" ]; then
|
2025-01-27 16:27:42 -08:00
|
|
|
RUNTIME="win-$ARCHITECTURE"
|
2023-05-14 10:23:44 +03:00
|
|
|
elif [ "$PLATFORM" = "Linux" ]; then
|
2025-01-27 16:27:42 -08:00
|
|
|
RUNTIME="linux-$ARCHITECTURE"
|
2023-05-14 10:23:44 +03:00
|
|
|
elif [ "$PLATFORM" = "Mac" ]; then
|
2025-01-27 16:27:42 -08:00
|
|
|
RUNTIME="osx-$ARCHITECTURE"
|
2023-05-14 10:23:44 +03:00
|
|
|
else
|
|
|
|
echo "Platform must be provided as first argument: Windows, Linux or Mac"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
outputFolder='_output'
|
|
|
|
testPackageFolder='_tests'
|
|
|
|
|
|
|
|
rm -rf $outputFolder
|
|
|
|
rm -rf $testPackageFolder
|
|
|
|
|
|
|
|
slnFile=src/Sonarr.sln
|
2025-02-19 17:00:42 -08:00
|
|
|
outputFile=src/Sonarr.Api.V5/openapi.json
|
2023-05-14 10:23:44 +03:00
|
|
|
platform=Posix
|
|
|
|
|
2024-06-10 11:23:33 +03:00
|
|
|
if [ "$PLATFORM" = "Windows" ]; then
|
|
|
|
application=Sonarr.Console.dll
|
|
|
|
else
|
|
|
|
application=Sonarr.dll
|
|
|
|
fi
|
|
|
|
|
2023-05-14 10:23:44 +03:00
|
|
|
dotnet clean $slnFile -c Debug
|
|
|
|
dotnet clean $slnFile -c Release
|
|
|
|
|
|
|
|
dotnet msbuild -restore $slnFile -p:Configuration=Debug -p:Platform=$platform -p:RuntimeIdentifiers=$RUNTIME -t:PublishAllRids
|
|
|
|
|
2025-01-29 20:14:22 -08:00
|
|
|
dotnet new tool-manifest
|
2024-06-10 11:23:33 +03:00
|
|
|
dotnet tool install --version 6.6.2 Swashbuckle.AspNetCore.Cli
|
2023-05-14 10:23:44 +03:00
|
|
|
|
2025-02-19 17:00:42 -08:00
|
|
|
# Remove the openapi.json file so we can check if it was created
|
|
|
|
rm $outputFile
|
|
|
|
|
2025-01-27 16:27:42 -08:00
|
|
|
dotnet tool run swagger tofile --output ./src/Sonarr.Api.V5/openapi.json "$outputFolder/$FRAMEWORK/$RUNTIME/$application" v5 &
|
2023-05-14 10:23:44 +03:00
|
|
|
|
2024-06-10 11:23:33 +03:00
|
|
|
sleep 45
|
2023-05-14 10:23:44 +03:00
|
|
|
|
|
|
|
kill %1
|
|
|
|
|
2025-02-19 17:00:42 -08:00
|
|
|
if [ ! -f $outputFile ]; then
|
|
|
|
echo "$outputFile not found, check logs for errors"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2023-05-14 10:23:44 +03:00
|
|
|
exit 0
|