Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 32 additions & 1 deletion src_assets/windows/misc/service/install-service.bat
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
@echo off
setlocal enabledelayedexpansion

rem Get sunshine root directory
for %%I in ("%~dp0\..") do set "ROOT_DIR=%%~fI"

set SERVICE_NAME=SunshineService
set SERVICE_BIN="%ROOT_DIR%\tools\sunshinesvc.exe"
set "SERVICE_BIN=%ROOT_DIR%\tools\sunshinesvc.exe"
set "SERVICE_CONFIG_DIR=%LOCALAPPDATA%\LizardByte\Sunshine"
set "SERVICE_CONFIG_FILE=%SERVICE_CONFIG_DIR%\service_start_type.txt"

rem Set service to demand start. It will be changed to auto later if the user selected that option.
set SERVICE_START_TYPE=demand
Expand All @@ -26,6 +29,34 @@ if %ERRORLEVEL%==0 (
set SC_CMD=create
)

rem Check if we have a saved start type from previous installation
if exist "%SERVICE_CONFIG_FILE%" (
rem Debug output file content
type "%SERVICE_CONFIG_FILE%"

rem Read the saved start type
for /f "usebackq delims=" %%a in ("%SERVICE_CONFIG_FILE%") do (
set "SAVED_START_TYPE=%%a"
)

echo Raw saved start type: [!SAVED_START_TYPE!]

rem Check start type
if "!SAVED_START_TYPE!"=="2-delayed" (
set SERVICE_START_TYPE=delayed-auto
) else if "!SAVED_START_TYPE!"=="2" (
set SERVICE_START_TYPE=auto
) else if "!SAVED_START_TYPE!"=="3" (
set SERVICE_START_TYPE=demand
) else if "!SAVED_START_TYPE!"=="4" (
set SERVICE_START_TYPE=disabled
)

del "%SERVICE_CONFIG_FILE%"
)

echo Setting service start type set to: [!SERVICE_START_TYPE!]

rem Run the sc command to create/reconfigure the service
sc %SC_CMD% %SERVICE_NAME% binPath= %SERVICE_BIN% start= %SERVICE_START_TYPE% DisplayName= "Sunshine Service"

Expand Down
32 changes: 32 additions & 0 deletions src_assets/windows/misc/service/uninstall-service.bat
Original file line number Diff line number Diff line change
@@ -1,4 +1,36 @@
@echo off
setlocal enabledelayedexpansion

set "SERVICE_CONFIG_DIR=%LOCALAPPDATA%\LizardByte\Sunshine"
set "SERVICE_CONFIG_FILE=%SERVICE_CONFIG_DIR%\service_start_type.txt"

rem Save the current service start type to a file if the service exists
sc qc SunshineService >nul 2>&1
if %ERRORLEVEL%==0 (
if not exist "%SERVICE_CONFIG_DIR%\" mkdir "%SERVICE_CONFIG_DIR%\"

rem Get the start type
for /f "tokens=3" %%i in ('sc qc SunshineService ^| findstr /C:"START_TYPE"') do (
set "CURRENT_START_TYPE=%%i"
)

rem Set the content to write
if "!CURRENT_START_TYPE!"=="2" (
sc qc SunshineService | findstr /C:"(DELAYED)" >nul
if !ERRORLEVEL!==0 (
set "CONTENT=2-delayed"
) else (
set "CONTENT=2"
)
) else if "!CURRENT_START_TYPE!" NEQ "" (
set "CONTENT=!CURRENT_START_TYPE!"
) else (
set "CONTENT=unknown"
)

rem Write content to file
echo !CONTENT!> "%SERVICE_CONFIG_FILE%"
)

rem Stop and delete the legacy SunshineSvc service
net stop sunshinesvc
Expand Down
Loading