2022-07-27 21:30:57 -05:00

62 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Check argument count
if [[ $# -ne 1 ]]; then
echo "Usage: $0 VERSION"
exit 1
fi
# Use provided tag to derive archive filename and short tag
version="$1"
zip="intro-skipper-$version.zip"
short="$(echo "$version" | sed "s/^v//")"
# Get the assembly version
CSPROJ="ConfusedPolarBear.Plugin.IntroSkipper/ConfusedPolarBear.Plugin.IntroSkipper.csproj"
assemblyVersion="$(grep -m1 -oE "([0-9]\.){3}[0-9]" "$CSPROJ")"
# Get the date
date="$(date --utc -Iseconds | sed "s/\+00:00/Z/")"
# Debug
echo "Version: $version ($short)"
echo "Archive: $zip"
echo
echo "Running unit tests"
dotnet test -p:DefineConstants=SKIP_FFMPEG_TESTS || exit 1
echo
echo "Building plugin in Release mode"
dotnet build -c Release || exit 1
echo
# Create packaging directory
mkdir package
cd package || exit 1
# Copy the freshly built plugin DLL to the packaging directory and archive
cp "../ConfusedPolarBear.Plugin.IntroSkipper/bin/Release/net6.0/ConfusedPolarBear.Plugin.IntroSkipper.dll" ./ || exit 1
zip "$zip" ConfusedPolarBear.Plugin.IntroSkipper.dll || exit 1
# Calculate the checksum of the archive
checksum="$(md5sum "$zip" | cut -f 1 -d " ")"
# Generate the manifest entry for this plugin
cat > manifest.json <<'EOF'
{
"version": "ASSEMBLY",
"changelog": "- See the full changelog at [GitHub](https://github.com/ConfusedPolarBear/intro-skipper/blob/master/CHANGELOG.md)\n",
"targetAbi": "10.8.1.0",
"sourceUrl": "https://github.com/ConfusedPolarBear/intro-skipper/releases/download/VERSION/ZIP",
"checksum": "CHECKSUM",
"timestamp": "DATE"
}
EOF
sed -i "s/ASSEMBLY/$assemblyVersion/" manifest.json
sed -i "s/VERSION/$version/" manifest.json
sed -i "s/ZIP/$zip/" manifest.json
sed -i "s/CHECKSUM/$checksum/" manifest.json
sed -i "s/DATE/$date/" manifest.json