RyujinxHelper/build.sh

77 lines
No EOL
1.6 KiB
Bash

if [ $# != 1 ]; then
echo "This script requires one argument, representing the version to build."
read -n1 -r -p "Press any key to exit."
exit 1
fi
function pub {
echo "Compiling for $1..."
dotnet publish -c release -r $1 --self-contained -p:PublishSingleFile=true -o ../../build/$1/$2 --p:Version="$3"
}
function packClassic {
if stringContain "win" $1; then
mv build/$1/classic/RyuBot.exe artifacts/RyuBot-$2_$1.exe
else
mv build/$1/classic/RyuBot artifacts/RyuBot-$2_$1
fi
}
function packUi {
if stringContain "win" $1; then
cd build/$1/ui
7z a ../../../artifacts/RyuBot.UI-$2_$1.7z ./
cd ../../../
else
cd build/$1/ui
tar -czvf ../../../artifacts/RyuBot.UI-$2_$1.tar.gz ./
cd ../../../
fi
}
stringContain() { case $2 in *$1* ) return 0;; *) return 1;; esac ;}
echo "Cleaning previous build & packages..."
rm -rf build
rm -rf artifacts
mkdir artifacts
echo "Building just the bot..."
cd src/Bot
pub linux-arm64 classic $1
pub linux-x64 classic $1
pub win-arm64 classic $1
pub win-x64 classic $1
pub osx-arm64 classic $1
pub osx-x64 classic $1
cd ../../src/UI
echo "Switching to the Avalonia project..."
pub linux-arm64 ui $1
pub linux-x64 ui $1
pub win-arm64 ui $1
pub win-x64 ui $1
pub osx-arm64 ui $1
pub osx-x64 ui $1
cd ../../
echo "Packaging builds..."
packClassic linux-arm64 $1
packClassic linux-x64 $1
packClassic win-arm64 $1
packClassic win-x64 $1
packClassic osx-arm64 $1
packClassic osx-x64 $1
packUi linux-arm64 $1
packUi linux-x64 $1
packUi win-arm64 $1
packUi win-x64 $1
packUi osx-arm64 $1
packUi osx-x64 $1