Files
SwarmUI/launch-windows.bat
2024-06-22 17:15:12 -07:00

62 lines
2.0 KiB
Batchfile

@echo off
setlocal ENABLEDELAYEDEXPANSION
rem Ensure correct local path.
cd /D "%~dp0"
rem Microsoft borked the dotnet installer/path handler, so force x64 to be read first
set PATH=C:\Program Files\dotnet;%PATH%
set DOTNET_CLI_TELEMETRY_OPTOUT=1
rem Server settings option
if exist .\src\bin\always_pull (
echo "Pulling latest changes..."
git pull
)
if exist .\src\bin\must_rebuild (
echo "Rebuilding..."
rmdir /s /q .\src\bin\live_release_backup
move .\src\bin\live_release .\src\bin\live_release_backup
del .\src\bin\must_rebuild
) else if not exist .git (
echo "" & echo ""
echo "WARNING: YOU DID NOT CLONE FROM GIT. THIS WILL BREAK SOME SYSTEMS. PLEASE INSTALL PER THE README."
echo "" & echo ""
) else (
for /f "delims=" %%i in ('git rev-parse HEAD') do set CUR_HEAD=%%i
set /p BUILT_HEAD=<src/bin/last_build
if not "!CUR_HEAD!"=="!BUILT_HEAD!" (
echo "" & echo ""
echo "WARNING: You did a git pull without building. Will now build for you..."
echo "" & echo ""
rmdir /s /q .\src\bin\live_release_backup
move .\src\bin\live_release .\src\bin\live_release_backup
)
)
rem Build the program if it isn't already built
if not exist src\bin\live_release\SwarmUI.dll (
rem For some reason Microsoft's nonsense is missing the official nuget source? So forcibly add that to be safe.
dotnet nuget add source https://api.nuget.org/v3/index.json --name "NuGet official package source"
dotnet build src/SwarmUI.csproj --configuration Release -o src/bin/live_release
for /f "delims=" %%i in ('git rev-parse HEAD') do set CUR_HEAD2=%%i
echo !CUR_HEAD2!> src/bin/last_build
)
rem Default env configuration, gets overwritten by the C# code's settings handler
set ASPNETCORE_ENVIRONMENT="Production"
set ASPNETCORE_URLS="http://*:7801"
dotnet src\bin\live_release\SwarmUI.dll %*
rem Exit code 42 means restart, anything else = don't.
if %ERRORLEVEL% EQU 42 (
echo "Restarting..."
call launch-windows.bat %*
)
IF %ERRORLEVEL% NEQ 0 ( pause )