From dc22461901c83d43bf2f7f7072cd59c37c1989d7 Mon Sep 17 00:00:00 2001 From: oqyude Date: Tue, 7 Oct 2025 21:21:47 +0300 Subject: [PATCH] powershell migration --- {modules => archive}/apps-connect.bat | 1 + {modules => archive}/apps-disconnect.bat | 0 {modules => archive}/apps-manager.bat | 30 ++++++------ {modules => archive}/apps-reconnect.bat | 0 deploy.bat => archive/deploy.bat | 60 ++++++++++++------------ archive/test.bat | 27 +++++++++++ data/apps/[all]/apps.csv | 5 -- data/apps/all.csv | 5 ++ data/apps/legacy/EqualizerAPO copy.bat | 12 ----- data/apps/legacy/EqualizerAPO.bat | 16 +++++++ modules/storage-disconnect.bat | 15 ------ modules/storage-reconnect.bat | 6 +-- modules/test.bat | 12 ----- run.ps1 | 2 + settings/init.ps1 | 14 ++++++ settings/vars.bat | 5 +- settings/vars.csv | 13 +++++ settings/vars.ps1 | 32 +++++++++++++ 18 files changed, 158 insertions(+), 97 deletions(-) rename {modules => archive}/apps-connect.bat (99%) rename {modules => archive}/apps-disconnect.bat (100%) rename {modules => archive}/apps-manager.bat (79%) rename {modules => archive}/apps-reconnect.bat (100%) rename deploy.bat => archive/deploy.bat (96%) create mode 100644 archive/test.bat delete mode 100644 data/apps/[all]/apps.csv create mode 100644 data/apps/all.csv delete mode 100644 data/apps/legacy/EqualizerAPO copy.bat create mode 100644 data/apps/legacy/EqualizerAPO.bat delete mode 100644 modules/storage-disconnect.bat delete mode 100644 modules/test.bat create mode 100644 run.ps1 create mode 100644 settings/init.ps1 create mode 100644 settings/vars.csv create mode 100644 settings/vars.ps1 diff --git a/modules/apps-connect.bat b/archive/apps-connect.bat similarity index 99% rename from modules/apps-connect.bat rename to archive/apps-connect.bat index 826dcdb..08b07d9 100644 --- a/modules/apps-connect.bat +++ b/archive/apps-connect.bat @@ -8,4 +8,5 @@ if '%errorlevel%' NEQ '0' ( ) call "%~dp0apps-manager.bat" connect + endlocal \ No newline at end of file diff --git a/modules/apps-disconnect.bat b/archive/apps-disconnect.bat similarity index 100% rename from modules/apps-disconnect.bat rename to archive/apps-disconnect.bat diff --git a/modules/apps-manager.bat b/archive/apps-manager.bat similarity index 79% rename from modules/apps-manager.bat rename to archive/apps-manager.bat index 7d23f5a..f8a1b7f 100644 --- a/modules/apps-manager.bat +++ b/archive/apps-manager.bat @@ -2,21 +2,21 @@ :: ========================================== :: Проверка прав администратора :: ========================================== ->nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" -if '%errorlevel%' NEQ '0' ( - echo Требуются права администратора. Перезапуск... - powershell -Command "Start-Process -FilePath '%~f0' -ArgumentList '%*' -Verb RunAs" - exit /b -) +@REM >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" +@REM if '%errorlevel%' NEQ '0' ( +@REM echo Требуются права администратора. Перезапуск... +@REM powershell -Command "Start-Process -FilePath '%~f0' -ArgumentList '%*' -Verb RunAs " +@REM exit /b +@REM ) :: ========================================== :: Инициализация :: ========================================== setlocal EnableDelayedExpansion -set "init=%~dp0\..\settings\init.bat" +set "init=%~dp0\settings\init.bat" call "%init%" -set "config=%csv%" +set "config=%apps-all%" :: ========================================== :: Аргумент действия @@ -33,20 +33,20 @@ for /f "skip=1 tokens=1-8 delims=," %%A in (%config%) do ( set "To=%%C" set "Type=%%D" set "Enabled=%%E" - set "ExtraVariables=%%F" - set "ExtraConnect=%%G" - set "ExtraDisconnect=%%H" + set "ExtraVariables=%%~F" + set "ExtraConnect=%%~G" + set "ExtraDisconnect=%%~H" if "!Enabled!"=="1" ( :: Разворачиваем стандартные переменные окружения call set "From=!From!" call set "To=!To!" - if not "!ExtraConnect!"=="" call set "ExtraConnect=!ExtraConnect!" - if not "!ExtraDisconnect!"=="" call set "ExtraDisconnect=!ExtraDisconnect!" + call set "ExtraConnect=!ExtraConnect!" + call set "ExtraDisconnect=!ExtraDisconnect!" :: Выполняем Extra-Variables как команду if not "!ExtraVariables!"=="" ( - call !ExtraVariables! + echo !ExtraVariables! ) echo ============================== @@ -84,7 +84,7 @@ exit /b :: ========================================== :disconnect echo Removing "!To!"... -rd /S /Q "!To!" 2>nul +rd /Q "!To!" 2>nul if not "!ExtraDisconnect!"=="" call !ExtraDisconnect! goto :eof diff --git a/modules/apps-reconnect.bat b/archive/apps-reconnect.bat similarity index 100% rename from modules/apps-reconnect.bat rename to archive/apps-reconnect.bat diff --git a/deploy.bat b/archive/deploy.bat similarity index 96% rename from deploy.bat rename to archive/deploy.bat index 0426bb8..93f4ce0 100644 --- a/deploy.bat +++ b/archive/deploy.bat @@ -1,31 +1,31 @@ -@echo off -setlocal EnableDelayedExpansion - -:: BatchGotAdmin BEGIN https://sites.google.com/site/eneerge/home/BatchGotAdmin | https://ss64.com/nt/rem.html | https://ss64.com/nt/cacls.html -:: Check for permissions ->nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" - -:: If error flag set, we do not have admin. -if '%errorlevel%' NEQ '0' ( - echo Requesting administrative privileges... - goto UACPrompt -) else ( goto gotAdmin ) - -:UACPrompt - echo Set UAC = CreateObject^("Shell.Application"^) > "%~dp0getadmin.vbs" - echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%~dp0getadmin.vbs" - - "%~dp0getadmin.vbs" - exit /B - -:gotAdmin - if exist "%~dp0getadmin.vbs" ( del "%~dp0getadmin.vbs" ) - pushd "%CD%" - CD /D "%~dp0" -:: BatchGotAdmin END - -cd /d "%~dp0\modules" - -call init.bat -start call storage-connect.bat +@echo off +setlocal EnableDelayedExpansion + +:: BatchGotAdmin BEGIN https://sites.google.com/site/eneerge/home/BatchGotAdmin | https://ss64.com/nt/rem.html | https://ss64.com/nt/cacls.html +:: Check for permissions +>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" + +:: If error flag set, we do not have admin. +if '%errorlevel%' NEQ '0' ( + echo Requesting administrative privileges... + goto UACPrompt +) else ( goto gotAdmin ) + +:UACPrompt + echo Set UAC = CreateObject^("Shell.Application"^) > "%~dp0getadmin.vbs" + echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%~dp0getadmin.vbs" + + "%~dp0getadmin.vbs" + exit /B + +:gotAdmin + if exist "%~dp0getadmin.vbs" ( del "%~dp0getadmin.vbs" ) + pushd "%CD%" + CD /D "%~dp0" +:: BatchGotAdmin END + +cd /d "%~dp0\modules" + +call init.bat +start call storage-connect.bat start call mounts-connect.bat \ No newline at end of file diff --git a/archive/test.bat b/archive/test.bat new file mode 100644 index 0000000..b2c661b --- /dev/null +++ b/archive/test.bat @@ -0,0 +1,27 @@ +@echo off +setlocal EnableDelayedExpansion + +:: BatchGotAdmin BEGIN https://sites.google.com/site/eneerge/home/BatchGotAdmin | https://ss64.com/nt/rem.html | https://ss64.com/nt/cacls.html +:: Check for permissions +>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" + +:: If error flag set, we do not have admin. +if '%errorlevel%' NEQ '0' ( + echo Requesting administrative privileges... + goto UACPrompt +) else ( goto gotAdmin ) + +:UACPrompt + echo Set UAC = CreateObject^("Shell.Application"^) > "%~dp0getadmin.vbs" + echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%~dp0getadmin.vbs" + + "%~dp0getadmin.vbs" + exit /B + +:gotAdmin + if exist "%~dp0getadmin.vbs" ( del "%~dp0getadmin.vbs" ) + pushd "%CD%" + CD /D "%~dp0" +:: BatchGotAdmin END + +call "%~dp0apps-manager.bat" reconnect \ No newline at end of file diff --git a/data/apps/[all]/apps.csv b/data/apps/[all]/apps.csv deleted file mode 100644 index ce50ea4..0000000 --- a/data/apps/[all]/apps.csv +++ /dev/null @@ -1,5 +0,0 @@ -App,From,To,Type,Enabled,Extra-Variables,Extra-Connect,Extra-Disconnect -AIMP,%storage%\%app%,%appdata%\%app%,default,0,,, -KeePassXC,%storage%\%app%,%appdata%\%app%,default,0,,, -gramps,%storage%\%app%,%appdata%\%app%,default,0,,, -EqualizerAPO,%storage%\%app%,%ProgramFiles%\%app%,isolate,1,"set ""from_1=%storage%\%app%"" && set ""to_1=%ProgramFiles%\%app%"" && set ""FabFilter_Pro-Q_3=%ProgramFiles%\VSTPlugins\FabFilter\FabFilter Pro-Q 3.dll""","reg add ""HKEY_LOCAL_MACHINE\SOFTWARE\EqualizerAPO"" /v ""ConfigPath"" /t REG_SZ /d ""%storage%\%app%"" /f && mklink ""%to_1%\VSTPlugins\FabFilter Pro-Q 3.dll"" ""%FabFilter_Pro-Q_3%""","for /f ""delims="" %%i in ('dir /aL /b %to_1%\config') do del ""%%i"" && del /q ""%to_1%\config\*"" && del /q ""%to_1%\VSTPlugins\FabFilter Pro-Q 3.dll""" \ No newline at end of file diff --git a/data/apps/all.csv b/data/apps/all.csv new file mode 100644 index 0000000..064a952 --- /dev/null +++ b/data/apps/all.csv @@ -0,0 +1,5 @@ +App,From,To,Type,Enabled,Extra-Variables,Extra-Connect,Extra-Disconnect +AIMP,%storage%\%app%,%appdata%\%app%,default,0,,, +KeePassXC,%storage%\%app%,%appdata%\%app%,default,0,,, +gramps,%storage%\%app%,%appdata%\%app%,default,0,,, +EqualizerAPO,%storage%\%app%,%ProgramFiles%\%app%,isolate,1,,, \ No newline at end of file diff --git a/data/apps/legacy/EqualizerAPO copy.bat b/data/apps/legacy/EqualizerAPO copy.bat deleted file mode 100644 index 12ebaea..0000000 --- a/data/apps/legacy/EqualizerAPO copy.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off -setlocal - -set "app=EqualizerAPO" - -set "from_1=%storage%\%App%" && set "to_1=%ProgramFiles%\%App%" && set "FabFilter Pro-Q 3=%ProgramFiles%\VSTPlugins\FabFilter\FabFilter Pro-Q 3.dll" - -for /f "delims=" %%i in ('dir /aL /b %To%\config') do del "%%i" && del /q "%To%\config\*" && del /q "%To%\VSTPlugins\FabFilter Pro-Q 3.dll" - -reg add "HKEY_LOCAL_MACHINE\SOFTWARE\EqualizerAPO" /v "ConfigPath" /t REG_SZ /d "%storage%\%App%" /f && mklink "%To%\VSTPlugins\FabFilter Pro-Q 3.dll" "%FabFilter Pro-Q 3%" - -endlocal diff --git a/data/apps/legacy/EqualizerAPO.bat b/data/apps/legacy/EqualizerAPO.bat new file mode 100644 index 0000000..bd06ed0 --- /dev/null +++ b/data/apps/legacy/EqualizerAPO.bat @@ -0,0 +1,16 @@ +@echo off +setlocal + +set "app=EqualizerAPO" +set "from_1=%storage%\%app%" +set "to_1=%ProgramFiles%\%app%" +set "FabFilter Pro-Q 3=%ProgramFiles%\VSTPlugins\FabFilter\FabFilter Pro-Q 3.dll" + +for /f "delims=" %%i in ('dir /aL /b %to_1%\config') do del "%%i" +del /q "%to_1%\config\*" +del /q "%to_1%\VSTPlugins\FabFilter Pro-Q 3.dll" + +reg add "HKEY_LOCAL_MACHINE\SOFTWARE\EqualizerAPO" /v "ConfigPath" /t REG_SZ /d "%storage%\%app%" /f +mklink "%to_1%\VSTPlugins\FabFilter Pro-Q 3.dll" "%FabFilter Pro-Q 3%" + +endlocal diff --git a/modules/storage-disconnect.bat b/modules/storage-disconnect.bat deleted file mode 100644 index 99c7b8f..0000000 --- a/modules/storage-disconnect.bat +++ /dev/null @@ -1,15 +0,0 @@ -setlocal - -set "init=%~dp0\..\settings\init.bat" -call %init% - -for %%f in ("%apps-all%\*.bat") do ( - echo Running %%f - disconnect - call "%%f" disconnect -) -for %%f in ("%apps-user%\*.bat") do ( - echo Running %%f - disconnect - call "%%f" disconnect -) - -endlocal \ No newline at end of file diff --git a/modules/storage-reconnect.bat b/modules/storage-reconnect.bat index 1ef06f0..4e5d0e1 100644 --- a/modules/storage-reconnect.bat +++ b/modules/storage-reconnect.bat @@ -3,11 +3,7 @@ setlocal set "init=%~dp0\..\settings\init.bat" call %init% -for %%f in ("%legacy%\*.bat") do ( - echo Running %%f - reconnect - call "%%f" -) -for %%f in ("%legacy%\*.bat") do ( +for %%f in ("%apps-legacy%\*.bat") do ( echo Running %%f - reconnect call "%%f" ) diff --git a/modules/test.bat b/modules/test.bat deleted file mode 100644 index 8e529b2..0000000 --- a/modules/test.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off -setlocal - -set "init=%~dp0\..\settings\init.bat" -call %init% - -for %%f in ("test\*.bat") do ( - echo Running %%f - call "%%f" -) - -endlocal \ No newline at end of file diff --git a/run.ps1 b/run.ps1 new file mode 100644 index 0000000..dbb3cb4 --- /dev/null +++ b/run.ps1 @@ -0,0 +1,2 @@ +$initFile = Join-Path $PSScriptRoot ".\settings\init.ps1" +. $initFile diff --git a/settings/init.ps1 b/settings/init.ps1 new file mode 100644 index 0000000..602ea5a --- /dev/null +++ b/settings/init.ps1 @@ -0,0 +1,14 @@ +# --- init.ps1 --- +# Переходим в папку скрипта +Set-Location -Path $PSScriptRoot + +# Определяем root аналогично %~dp0..\ +$root = Join-Path $PSScriptRoot ".." + +# Подключаем vars.ps1 +$varsFile = Join-Path $root "settings\vars.ps1" +if (Test-Path $varsFile) { + . $varsFile # точка + пробел = source / импорт +} else { + Write-Warning "Vars file not found: $varsFile" +} diff --git a/settings/vars.bat b/settings/vars.bat index 52bfd9e..3da6124 100644 --- a/settings/vars.bat +++ b/settings/vars.bat @@ -1,7 +1,7 @@ :: LOCAL :: :: Package Managers -set "winget=%~dp0winget.ps1" +set "winget=%root%\winget.ps1" :: Local Root set "data=%root%\data" @@ -15,8 +15,7 @@ set "packages-user-lists-other=%packages-user-lists%\other.bat" :: Apps set "apps=%data%\apps" -set "csv=%data%\apps.csv" -set "apps-all=%apps%\[all]" +set "apps-all=%apps%\all.csv" set "apps-legacy=%apps%\legacy" set "apps-user=%apps%\%computername%" :: Mounts diff --git a/settings/vars.csv b/settings/vars.csv new file mode 100644 index 0000000..a04b730 --- /dev/null +++ b/settings/vars.csv @@ -0,0 +1,13 @@ +Key,Value,Type +winget,%root%\winget.ps1,Package Manager +data,%root%\data,Local Root +packages,%data%\packages,Packages +apps,%data%\apps,Apps +apps-all,%apps%\all.csv,Apps +apps-legacy,%apps%\legacy,Apps +mounts,%data%\mounts,Mounts +disk-label,S:,Global +user-name,oqyude,Global +games,%disk-label%\Games,Main Folder +storage,%userprofile%\Storage,Main Folder +storage-games,N:\Games\.storage,Main Folder diff --git a/settings/vars.ps1 b/settings/vars.ps1 new file mode 100644 index 0000000..1519569 --- /dev/null +++ b/settings/vars.ps1 @@ -0,0 +1,32 @@ +# LOCAL + +# Package Managers +$winget = "$PSScriptRoot\winget.ps1" + +# Local Root +$data = "$root\data" + +# Packages +$packages = "$data\packages" +$packagesInstaller = "$packages\install.bat" +$packagesAllLists = "$packages\[all]" +$packagesUserLists = "$packages\$env:COMPUTERNAME" +$packagesUserListsOther = "$packagesUserLists\other.bat" + +# Apps +$apps = "$data\apps" +$appsAll = "$apps\all.csv" +$appsLegacy = "$apps\legacy" +$appsUser = "$apps\$env:COMPUTERNAME" + +# Mounts +$mounts = "$data\mounts" + +# GLOBAL +$diskLabel = "S:" +$userName = "oqyude" + +# Main Folder +$games = "$diskLabel\Games" +$storage = "$env:USERPROFILE\Storage" +$storageGames = "N:\Games\.storage"