mirror of
https://github.com/SillyTavern/SillyTavern-Launcher.git
synced 2026-01-26 17:09:44 +00:00
launcher upgrades
+backup support for multiple user folders +onboarding flow cleanup
This commit is contained in:
@@ -1,11 +1,67 @@
|
||||
@echo off
|
||||
|
||||
:create_backup
|
||||
title STL [CREATE-BACKUP]
|
||||
title STL [CREATE BACKUP]
|
||||
cls
|
||||
echo %blue_fg_strong%/ Home / Toolbox / Backup / Create Backup%reset%
|
||||
echo ---------------------------------------------------------------
|
||||
|
||||
REM Scan for user folders
|
||||
set "user_folders="
|
||||
for /d %%d in ("%st_install_path%\data\*") do (
|
||||
if /i not "%%~nxd"=="_storage" if /i not "%%~nxd"=="_uploads" (
|
||||
set "user_folders=!user_folders!%%~nxd|"
|
||||
)
|
||||
)
|
||||
|
||||
REM Remove the trailing pipe character
|
||||
set "user_folders=%user_folders:~0,-1%"
|
||||
|
||||
REM Split user_folders into an array
|
||||
set i=1
|
||||
set "user_count=0"
|
||||
for %%a in (%user_folders:|= %) do (
|
||||
echo !i!. %%a
|
||||
set "user_folder_!i!=%%a"
|
||||
set /a i+=1
|
||||
set /a user_count+=1
|
||||
)
|
||||
|
||||
REM If only one user folder is found, skip the selection
|
||||
if %user_count%==1 (
|
||||
set "selected_user_folder=!user_folder_1!"
|
||||
goto skip_user_selection
|
||||
)
|
||||
|
||||
:select_user_folder
|
||||
REM Prompt user to select a folder
|
||||
echo 0. Cancel
|
||||
set "selected_user_folder="
|
||||
set /p user_choice="Select a folder to backup: "
|
||||
|
||||
REM Check if the user wants to exit
|
||||
if "%user_choice%"=="0" (
|
||||
exit /b 0
|
||||
)
|
||||
|
||||
REM Get the selected folder name
|
||||
for /l %%i in (1,1,%user_count%) do (
|
||||
if "%user_choice%"=="%%i" set "selected_user_folder=!user_folder_%%i!"
|
||||
)
|
||||
|
||||
if "%selected_user_folder%"=="" (
|
||||
echo %red_fg_strong%[ERROR] Invalid selection. Please enter a number between 1 and %user_count%, or press 0 to cancel.%reset%
|
||||
pause
|
||||
goto :create_backup
|
||||
)
|
||||
|
||||
:skip_user_selection
|
||||
REM Replace backslashes with double backslashes in st_install_path
|
||||
set "escaped_st_install_path=%st_install_path:\=\\%"
|
||||
|
||||
REM Create a backup using 7zip
|
||||
7z a "%st_backup_path%\backup_.7z" ^
|
||||
"data\default-user\*" ^
|
||||
|
||||
"%st_install_path%\data\%selected_user_folder%\*" ^
|
||||
|
||||
REM Get current date and time components
|
||||
for /f "tokens=1-3 delims=/- " %%d in ("%date%") do (
|
||||
@@ -20,7 +76,6 @@ for /f "tokens=1-2 delims=:." %%h in ("%time%") do (
|
||||
)
|
||||
|
||||
REM Pad single digits with leading zeros
|
||||
setlocal enabledelayedexpansion
|
||||
set "day=0!day!"
|
||||
set "month=0!month!"
|
||||
set "hour=0!hour!"
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
@echo off
|
||||
|
||||
:onboarding_flow
|
||||
title STL [ONBOARDING FLOW]
|
||||
cls
|
||||
echo %blue_fg_strong%/ Home / Toolbox / Troubleshooting / Set Onboarding Flow%reset%
|
||||
echo ---------------------------------------------------------------
|
||||
|
||||
REM Scan for user folders
|
||||
set "user_folders="
|
||||
for /d %%d in ("%st_install_path%\data\*") do (
|
||||
@@ -31,8 +36,9 @@ if %user_count%==1 (
|
||||
|
||||
:select_user_folder
|
||||
REM Prompt user to select a folder
|
||||
echo 0. Cancel
|
||||
set "selected_user_folder="
|
||||
set /p user_choice="Select a user folder (1-%user_count%) or press 0 to exit: "
|
||||
set /p user_choice="Select a folder to apply the setting: "
|
||||
|
||||
REM Check if the user wants to exit
|
||||
if "%user_choice%"=="0" (
|
||||
@@ -49,8 +55,9 @@ for /l %%i in (1,1,%user_count%) do (
|
||||
)
|
||||
|
||||
if "%selected_user_folder%"=="" (
|
||||
echo Invalid selection. Please enter a number between 1 and %user_count%, or press 0 to exit.
|
||||
goto select_user_folder
|
||||
echo %red_fg_strong%[ERROR] Invalid selection. Please enter a number between 1 and %user_count%, or press 0 to cancel.%reset%
|
||||
pause
|
||||
goto :onboarding_flow
|
||||
)
|
||||
|
||||
:skip_user_selection
|
||||
|
||||
Reference in New Issue
Block a user