From 58959450e7ed6b78e8b4a0c6b8292d30b93487f2 Mon Sep 17 00:00:00 2001 From: Toastie Date: Tue, 20 Aug 2024 14:43:36 +1200 Subject: [PATCH] Added ellie-menu.ps1 --- elliebot/ellie-menu.ps1 | 191 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 elliebot/ellie-menu.ps1 diff --git a/elliebot/ellie-menu.ps1 b/elliebot/ellie-menu.ps1 new file mode 100644 index 0000000..866a6e3 --- /dev/null +++ b/elliebot/ellie-menu.ps1 @@ -0,0 +1,191 @@ +param ( + [switch]$testing, + [switch]$release, + [switch]$output_test, + [switch]$build, + [switch]$help +) + +$script_version = "1.0.0-public" + +Write-Output "" +Write-Host "███████╗██╗ ██╗ ██╗███████╗██████╗ ██████╗ ████████╗" -ForegroundColor DarkCyan +Write-Host "██╔════╝██║ ██║ ██║██╔════╝██╔══██╗██╔═══██╗╚══██╔══╝" -ForegroundColor DarkCyan +Write-Host "█████╗ ██║ ██║ ██║█████╗ ██████╔╝██║ ██║ ██║ " -ForegroundColor DarkCyan +Write-Host "██╔══╝ ██║ ██║ ██║██╔══╝ ██╔══██╗██║ ██║ ██║ " -ForegroundColor DarkCyan +Write-Host "███████╗███████╗███████╗██║███████╗██████╔╝╚██████╔╝ ██║ " -ForegroundColor DarkCyan +Write-Host "╚══════╝╚══════╝╚══════╝╚═╝╚══════╝╚═════╝ ╚═════╝ ╚═╝ " -ForegroundColor DarkCyan +Write-Output "" +# If you remove this copyright header I will bonk +Write-Output "Copyright © 2024 Toastie_t0ast & EllieBotDevs" +Write-Output "" +Write-Host "Current script version is v$script_version" -ForegroundColor DarkCyan +Write-Output "" + +if ($release) { + if ($args.Length -eq 0) { + Write-Host "Please provide a version string." -ForegroundColor Red + + Write-Output "" + Write-Host "Script failed." -ForegroundColor Red + Write-Host "Please read the Error above for more information" -ForegroundColor Gray + Write-Output "" + } + else { + $version = $args[0] + Write-Output "" + Write-Host "Publishing EllieBot v$version" -Foregroundcolor Green + Write-Output "" + + Write-Output "" + dotnet publish -c Release -r linux-x64 --self-contained -o elliebot-linux-x64 src/EllieBot/EllieBot.csproj + Write-Output "" + dotnet publish -c Release -r linux-arm64 --self-contained -o elliebot-linux-arm64 src/EllieBot/EllieBot.csproj + Write-Output "" + dotnet publish -c Release -r win-x64 --self-contained -o elliebot-windows-x64 src/EllieBot/EllieBot.csproj + Write-Output "" + dotnet publish -c Release -r win-arm64 --self-contained -o elliebot-windows-arm64 src/EllieBot/EllieBot.csproj + Write-Output "" + dotnet publish -c Release -r osx-x64 --self-contained -o elliebot-osx-x64 src/EllieBot/EllieBot.csproj + Write-Output "" + dotnet publish -c Release -r osx-arm64 --self-contained -o elliebot-osx-arm64 src/EllieBot/EllieBot.csproj + + Write-Output "" + Write-Output "Preparing the Windows installer build." + Write-Output "" + + dotnet clean + dotnet restore -f --no-cache -v n + dotnet publish -c Release --self-contained --runtime win-x64 /p:Version="$version" src/EllieBot + + Write-Output "" + Write-Output "Setting environemt variable" + Write-Output "" + + $env:ELLIEBOT_INSTALL_VERSION = $version + + Write-Output "" + Write-Output "Compiling installer file" + Write-Output "" + + iscc.exe /O+ .\exe_builder.iss + + Write-Output "" + Write-Output "Compressing windows build files" + Write-Output "" + + Compress-Archive -Path elliebot-windows-x64/ "$version-windows-x64-build.zip" + Compress-Archive -Path elliebot-windows-arm64/ "$version-windows-arm64-build.zip" + + Write-Output "" + Write-Output "Moving the installer file to the directory this script is in" + Write-Output "" + + Move-Item ellie-installers/$version/ellie-setup-$version.exe ellie-setup-$version.exe + + Write-Output "" + Write-Output "Script finished successfully" + Write-Output "" + Write-Output "If you wish to build the linux or MacOS builds please run" + Write-Output "build.sh in wsl if you are on Windows or in bash (or whatever terminal you use) on linux" + Write-Output "" + Write-Output "If you have any suggestions on how to make this script better please make a suggestion" + Write-Output "in our discord @ https://discord.gg/etQdZxSyEH and in the 📚・suggestions channel" + Write-Output "" + } +} + +if ($testing) { + if ($args.Length -eq 0) { + Write-Host "Please provide a version string." -ForegroundColor Red + + Write-Output "" + Write-Host "Script failed." -ForegroundColor Red + Write-Host "Please read the Error above for more information" -ForegroundColor Gray + Write-Output "" + } + else { + $version = $args[0] + Write-Output "" + Write-Output "Running tests for EllieBot v$version" + Write-Output "" + dotnet test + + Write-Output "" + Write-Output "Script finished successfully" + Write-Output "" + Write-Output "If you have any suggestions on how to make this script better please make a suggestion" + Write-Output "in our discord @ https://discord.gg/etQdZxSyEH and in the 📚・suggestions channel" + Write-Output "" + } +} + +if ($output_test) { + + Write-Output "" + Write-Output "Compiling a test build of EllieBot" + Write-Output "" + dotnet publish -c Release -o output/ src/EllieBot/ + + Write-Output "" + Write-Output "copying creds_example.yml to creds.yml" + Write-Output "" + Set-Location output + + Copy-Item creds_example.yml creds.yml + + Set-Location .. + + Write-Output "" + Write-Output "Script finished successfully" + Write-Output "" + Write-Output "If you have any suggestions on how to make this script better please make a suggestion" + Write-Output "in our discord @ https://discord.gg/etQdZxSyEH and in the 📚・suggestions channel" + Write-Output "" +} + +if ($build) { + + Write-Output "" + Write-Output "Restoring EllieBot" + Write-Output "" + dotnet restore + + Write-Output "" + Write-Output "Building EllieBot" + Write-Output "" + dotnet build --no-restore -c Release + + Write-Output "" + Write-Output "Script finished successfully" + Write-Output "" + Write-Output "If you have any suggestions on how to make this script better please make a suggestion" + Write-Output "in our discord @ https://discord.gg/etQdZxSyEH and in the 📚・suggestions channel" + Write-Output "" +} + +if ($help) { + Write-Output "" + Write-Output "Here is a list of switches for this script." + Write-Output "" + + Write-Host "Release parameter" -ForegroundColor Green + Write-Output "-release" + Write-Output "" + + Write-Host "Testing parameter" -ForegroundColor Blue + Write-Output "-testing" + Write-Output "" + + Write-Host "Output test parameter" -ForegroundColor Yellow + Write-Output "-output_test" + Write-Output "" + + Write-Host "Build parameter" -ForegroundColor DarkCyan + Write-Output "-build" + Write-Output "" + + Write-Host "Here is an example" -ForegroundColor Gray + Write-Host "build.ps1 -build" -ForegroundColor Gray + Write-Output "" +} \ No newline at end of file