diff --git a/bin/functions/Toolbox/Backup/create_backup.bat b/bin/functions/Toolbox/Backup/create_backup.bat index 21ee0bd..efe490e 100644 --- a/bin/functions/Toolbox/Backup/create_backup.bat +++ b/bin/functions/Toolbox/Backup/create_backup.bat @@ -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!" diff --git a/bin/functions/Toolbox/Troubleshooting/onboarding_flow.bat b/bin/functions/Toolbox/Troubleshooting/onboarding_flow.bat index c7ada7e..1cf7e4f 100644 --- a/bin/functions/Toolbox/Troubleshooting/onboarding_flow.bat +++ b/bin/functions/Toolbox/Troubleshooting/onboarding_flow.bat @@ -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