powershell maybe now?
This commit is contained in:
@@ -1,12 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
|
|
||||||
if '%errorlevel%' NEQ '0' (
|
|
||||||
echo Restarting as Admin...
|
|
||||||
powershell -Command "Start-Process -FilePath '%~dp0apps-manager.bat' -ArgumentList 'connect' -Verb RunAs"
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
call "%~dp0apps-manager.bat" connect
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
|
|
||||||
if '%errorlevel%' NEQ '0' (
|
|
||||||
echo Restarting as Admin...
|
|
||||||
powershell -Command "Start-Process -FilePath '%~dp0apps-manager.bat' -ArgumentList 'disconnect' -Verb RunAs"
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
call "%~dp0apps-manager.bat" disconnect
|
|
||||||
endlocal
|
|
||||||
@@ -1,95 +0,0 @@
|
|||||||
@echo off
|
|
||||||
:: ==========================================
|
|
||||||
:: Проверка прав администратора
|
|
||||||
:: ==========================================
|
|
||||||
@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"
|
|
||||||
call "%init%"
|
|
||||||
|
|
||||||
set "config=%apps-all%"
|
|
||||||
|
|
||||||
:: ==========================================
|
|
||||||
:: Аргумент действия
|
|
||||||
:: ==========================================
|
|
||||||
set "action=%1"
|
|
||||||
if "%action%"=="" set "action=reconnect"
|
|
||||||
|
|
||||||
:: ==========================================
|
|
||||||
:: Обработка CSV
|
|
||||||
:: ==========================================
|
|
||||||
for /f "skip=1 tokens=1-8 delims=," %%A in (%config%) do (
|
|
||||||
set "App=%%A"
|
|
||||||
set "From=%%B"
|
|
||||||
set "To=%%C"
|
|
||||||
set "Type=%%D"
|
|
||||||
set "Enabled=%%E"
|
|
||||||
set "ExtraVariables=%%~F"
|
|
||||||
set "ExtraConnect=%%~G"
|
|
||||||
set "ExtraDisconnect=%%~H"
|
|
||||||
|
|
||||||
if "!Enabled!"=="1" (
|
|
||||||
:: Разворачиваем стандартные переменные окружения
|
|
||||||
call set "From=!From!"
|
|
||||||
call set "To=!To!"
|
|
||||||
call set "ExtraConnect=!ExtraConnect!"
|
|
||||||
call set "ExtraDisconnect=!ExtraDisconnect!"
|
|
||||||
|
|
||||||
:: Выполняем Extra-Variables как команду
|
|
||||||
if not "!ExtraVariables!"=="" (
|
|
||||||
echo !ExtraVariables!
|
|
||||||
)
|
|
||||||
|
|
||||||
echo ==============================
|
|
||||||
echo Processing !App! with action %action% (Type=!Type!)
|
|
||||||
|
|
||||||
if /I "!Type!"=="isolate" (
|
|
||||||
:: Для isolate исполняем только extra команды
|
|
||||||
if /I "%action%"=="disconnect" if not "!ExtraDisconnect!"=="" call !ExtraDisconnect!
|
|
||||||
if /I "%action%"=="connect" if not "!ExtraConnect!"=="" call !ExtraConnect!
|
|
||||||
if /I "%action%"=="reconnect" (
|
|
||||||
if not "!ExtraDisconnect!"=="" call !ExtraDisconnect!
|
|
||||||
if not "!ExtraConnect!"=="" call !ExtraConnect!
|
|
||||||
)
|
|
||||||
) else (
|
|
||||||
:: default — обычное поведение
|
|
||||||
if /I "%action%"=="disconnect" call :disconnect
|
|
||||||
if /I "%action%"=="connect" call :connect
|
|
||||||
if /I "%action%"=="reconnect" (
|
|
||||||
call :disconnect
|
|
||||||
call :connect
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
:: ==========================================
|
|
||||||
:: Завершение
|
|
||||||
:: ==========================================
|
|
||||||
:end
|
|
||||||
endlocal
|
|
||||||
exit /b
|
|
||||||
|
|
||||||
:: ==========================================
|
|
||||||
:: Функции
|
|
||||||
:: ==========================================
|
|
||||||
:disconnect
|
|
||||||
echo Removing "!To!"...
|
|
||||||
rd /Q "!To!" 2>nul
|
|
||||||
if not "!ExtraDisconnect!"=="" call !ExtraDisconnect!
|
|
||||||
goto :eof
|
|
||||||
|
|
||||||
:connect
|
|
||||||
echo Creating symlink "!To!" -> "!From!"...
|
|
||||||
mklink /D "!To!" "!From!"
|
|
||||||
if not "!ExtraConnect!"=="" call !ExtraConnect!
|
|
||||||
goto :eof
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
|
|
||||||
if '%errorlevel%' NEQ '0' (
|
|
||||||
echo Restarting as Admin...
|
|
||||||
powershell -Command "Start-Process -FilePath '%~dp0apps-manager.bat' -ArgumentList 'reconnect' -Verb RunAs"
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
call "%~dp0apps-manager.bat" reconnect
|
|
||||||
endlocal
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=AIMP"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%"
|
|
||||||
set "to_1=%appdata%\%app%"
|
|
||||||
|
|
||||||
if "%1"=="" goto reconnect
|
|
||||||
if /I "%1"=="disconnect" goto disconnect
|
|
||||||
if /I "%1"=="connect" goto connect
|
|
||||||
|
|
||||||
:disconnect
|
|
||||||
rd /Q "%to_1%"
|
|
||||||
goto end
|
|
||||||
|
|
||||||
:connect
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
goto end
|
|
||||||
|
|
||||||
:reconnect
|
|
||||||
rd /Q "%to_1%"
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
goto end
|
|
||||||
|
|
||||||
:end
|
|
||||||
endlocal
|
|
||||||
@@ -1,17 +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_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
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=KeePassXC"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%"
|
|
||||||
set "to_1=%appdata%\%app%"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=Playnite"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%"
|
|
||||||
set "to_1=%appdata%\%app%"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
endlocal
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=Powertoys"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%\%computername%"
|
|
||||||
set "to_1=%localappdata%\Microsoft\PowerToys"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=Sublime Text"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%\Config"
|
|
||||||
set "to_1=%AppData%\%app%"
|
|
||||||
set "from_exe_1=%storage%\%app%\Patched\Windows\sublime_text.exe"
|
|
||||||
set "to_exe_1=%ProgramFiles%\%app%\sublime_text.exe"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=SumatraPDF"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%"
|
|
||||||
set "to_1=%localappdata%\%app%"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=Syncthing"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%\%computername%"
|
|
||||||
set "to_1=%localappdata%\%app%"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=transmission"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%\%computername%"
|
|
||||||
set "to_1=%localappdata%\%app%"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=VSCodium"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%"
|
|
||||||
set "to_1=%appdata%\%app%"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
endlocal
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=gramps"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%"
|
|
||||||
set "to_1=%appdata%\%app%"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=ludusavi"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%\cfg"
|
|
||||||
set "to_1=%appdata%\%app%"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=v2rayN"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%"
|
|
||||||
set "to_1=%localappdata%\%app%"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
endlocal
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=64Gram Desktop"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%\%computername%"
|
|
||||||
set "to_1=%appdata%\%app%\tdata"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=Nekoray"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%\%computername%\config"
|
|
||||||
set "to_1=%localappdata%\Microsoft\WinGet\Packages\MatsuriDayo.NekoRay_Microsoft.Winget.Source_8wekyb3d8bbwe\nekoray\config"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
endlocal
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=PrismLauncher"
|
|
||||||
|
|
||||||
set "from_1=%storage-games%\%app%"
|
|
||||||
set "to_1=%appdata%\%app%"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=beets"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%"
|
|
||||||
set "to_1=%appdata%\%app%"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=glzr"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%"
|
|
||||||
set "to_1=%USERPROFILE%\.%app%"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "app=xdg-configs"
|
|
||||||
|
|
||||||
set "from_1=%storage%\%app%"
|
|
||||||
set "to_1=%userprofile%\.config"
|
|
||||||
|
|
||||||
rd /q "%to_1%"
|
|
||||||
|
|
||||||
mklink /D "%to_1%" "%from_1%"
|
|
||||||
endlocal
|
|
||||||
@@ -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,,,
|
|
||||||
|
@@ -1,16 +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_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
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
@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
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
set "init=%~dp0\..\settings\init.bat"
|
|
||||||
call %init%
|
|
||||||
|
|
||||||
for %%f in ("%mounts%\*.bat") do (
|
|
||||||
echo Running %%f
|
|
||||||
call "%%f"
|
|
||||||
)
|
|
||||||
endlocal
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
setlocal
|
|
||||||
|
|
||||||
set "init=%~dp0\..\settings\init.bat"
|
|
||||||
call %init%
|
|
||||||
|
|
||||||
for %%f in ("%apps-legacy%\*.bat") do (
|
|
||||||
echo Running %%f - reconnect
|
|
||||||
call "%%f"
|
|
||||||
)
|
|
||||||
|
|
||||||
endlocal
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
@echo off
|
|
||||||
|
|
||||||
cd /d "%~dp0"
|
|
||||||
set "root=%~dp0..\"
|
|
||||||
|
|
||||||
set "vars=%root%\settings\vars.bat"
|
|
||||||
call "%vars%"
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
:: LOCAL ::
|
|
||||||
|
|
||||||
:: Package Managers
|
|
||||||
set "winget=%root%\winget.ps1"
|
|
||||||
|
|
||||||
:: Local Root
|
|
||||||
set "data=%root%\data"
|
|
||||||
|
|
||||||
:: Packages
|
|
||||||
set "packages=%data%\packages"
|
|
||||||
set "packages-installer=%packages%\install.bat"
|
|
||||||
set "packages-all-lists=%packages%\[all]"
|
|
||||||
set "packages-user-lists=%packages%\%computername%"
|
|
||||||
set "packages-user-lists-other=%packages-user-lists%\other.bat"
|
|
||||||
|
|
||||||
:: Apps
|
|
||||||
set "apps=%data%\apps"
|
|
||||||
set "apps-all=%apps%\all.csv"
|
|
||||||
set "apps-legacy=%apps%\legacy"
|
|
||||||
set "apps-user=%apps%\%computername%"
|
|
||||||
:: Mounts
|
|
||||||
set "mounts=%data%\mounts"
|
|
||||||
|
|
||||||
|
|
||||||
:: GLOBAL ::
|
|
||||||
set "disk-label=S:"
|
|
||||||
set "user-name=oqyude"
|
|
||||||
|
|
||||||
:: Main Folder
|
|
||||||
set "games=%disk-label%\Games"
|
|
||||||
set "storage=%userprofile%\Storage"
|
|
||||||
set "storage-games=N:\Games\.storage"
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
@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
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
App,From,To,Type,Enabled,Script
|
|
||||||
AIMP,$storage\$AppName,$env:APPDATA\$AppName,default,0,
|
|
||||||
gramps,$storage\$AppName,$env:APPDATA\$AppName,default,0,
|
|
||||||
KeePassXC,$storage\$AppName,$env:APPDATA\$AppName,default,0,
|
|
||||||
ludusavi,$storage\$AppName,$env:APPDATA\$AppName,default,0,
|
|
||||||
Playnite,$storage\$AppName,$env:APPDATA\$AppName,default,0,
|
|
||||||
Powertoys,$storage\$AppName\$env:COMPUTERNAME,$env:LOCALAPPDATA\Microsoft\PowerToys,default,0,
|
|
||||||
Sublime Text,$storage\$AppName\Config,$env:APPDATA\$AppName,default,0,
|
|
||||||
SumatraPDF,$storage\$AppName,$env:LOCALAPPDATA\$AppName,default,0,
|
|
||||||
Syncthing,$storage\$AppName\$env:COMPUTERNAME,$env:LOCALAPPDATA\$AppName,default,0,
|
|
||||||
transmission,$storage\$AppName\$env:COMPUTERNAME,$env:LOCALAPPDATA\$AppName,default,0,
|
|
||||||
v2rayN,$storage\$AppName,$env:LOCALAPPDATA\$AppName,default,0,
|
|
||||||
VSCodium,$storage\$AppName,$env:APPDATA\$AppName,default,0,
|
|
||||||
EqualizerAPO,$storage\$AppName,$env:ProgramFiles\$AppName,isolate,1,$apps\$AppName.ps1
|
|
||||||
|
@@ -0,0 +1,14 @@
|
|||||||
|
App,From,To,Type,Enabled,Script
|
||||||
|
AIMP,$storage\$AppName,$env:APPDATA\$AppName,default,1,
|
||||||
|
gramps,$storage\$AppName,$env:APPDATA\$AppName,default,1,
|
||||||
|
KeePassXC,$storage\$AppName,$env:APPDATA\$AppName,default,1,
|
||||||
|
ludusavi,$storage\$AppName,$env:APPDATA\$AppName,default,1,
|
||||||
|
Playnite,$storage\$AppName,$env:APPDATA\$AppName,default,1,
|
||||||
|
Powertoys,$storage\$AppName\$env:COMPUTERNAME,$env:LOCALAPPDATA\Microsoft\PowerToys,default,1,
|
||||||
|
Sublime Text,$storage\$AppName\Config,$env:APPDATA\$AppName,default,1,
|
||||||
|
SumatraPDF,$storage\$AppName,$env:LOCALAPPDATA\$AppName,default,1,
|
||||||
|
Syncthing,$storage\$AppName\$env:COMPUTERNAME,$env:LOCALAPPDATA\$AppName,default,1,
|
||||||
|
transmission,$storage\$AppName\$env:COMPUTERNAME,$env:LOCALAPPDATA\$AppName,default,1,
|
||||||
|
v2rayN,$storage\$AppName,$env:LOCALAPPDATA\$AppName,default,1,
|
||||||
|
VSCodium,$storage\$AppName,$env:APPDATA\$AppName,default,1,
|
||||||
|
EqualizerAPO,$storage\$AppName,$env:ProgramFiles\$AppName,isolate,1,
|
||||||
|
@@ -1,21 +1,39 @@
|
|||||||
$initFile = Join-Path $PSScriptRoot ".\settings\init.ps1"
|
$initFile = Join-Path $PSScriptRoot ".\src\init.ps1"
|
||||||
. $initFile
|
. $initFile
|
||||||
|
|
||||||
# run.ps1 — проверка прав администратора
|
# Check for administrator privileges
|
||||||
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
|
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
|
||||||
Write-Host "Скрипт требует права администратора. Перезапуск..."
|
Write-Host "The script requires administrator privileges. Restarting..."
|
||||||
|
|
||||||
# Перезапуск скрипта с правами админа
|
# Restart the script with admin rights
|
||||||
Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
|
Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
# Если админ — продолжаем
|
Write-Host "Administrator privileges confirmed."
|
||||||
Write-Host "Запуск от имени администратора подтвержден."
|
|
||||||
|
|
||||||
# Аргумент действия
|
# Define available actions
|
||||||
$action = if ($args.Count -ge 1) { $args[0] } else { "connect" }
|
$actions = @("reconnect", "connect", "disconnect")
|
||||||
|
|
||||||
# Вызов apps-manager.ps1 с передачей аргумента
|
# Determine action: from argument or interactive menu
|
||||||
$appsManager = Join-Path $PSScriptRoot "apps-manager.ps1"
|
if ($args.Count -ge 1) {
|
||||||
. $appsManager $action
|
$action = $args[0]
|
||||||
|
} else {
|
||||||
|
Write-Host "Select an action:"
|
||||||
|
for ($i = 0; $i -lt $actions.Count; $i++) {
|
||||||
|
Write-Host "[$($i+1)] $($actions[$i])"
|
||||||
|
}
|
||||||
|
|
||||||
|
do {
|
||||||
|
$selection = Read-Host "Enter the number of your choice"
|
||||||
|
$valid = ($selection -as [int]) -and ($selection -ge 1) -and ($selection -le $actions.Count)
|
||||||
|
if (-not $valid) { Write-Host "Invalid selection. Try again." }
|
||||||
|
} until ($valid)
|
||||||
|
|
||||||
|
$action = $actions[$selection - 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Selected action: $action"
|
||||||
|
|
||||||
|
# Call with the chosen action
|
||||||
|
. $appsDataManager $action
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
# Переходим в папку скрипта
|
|
||||||
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"
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
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
|
|
||||||
|
@@ -1,24 +0,0 @@
|
|||||||
# LOCAL
|
|
||||||
|
|
||||||
# Package Managers
|
|
||||||
$winget = "$PSScriptRoot\winget.ps1"
|
|
||||||
|
|
||||||
# Local Root
|
|
||||||
$data = "$root\data"
|
|
||||||
|
|
||||||
# Apps
|
|
||||||
$apps = "$data\apps"
|
|
||||||
$appsAll = "$data\all.csv"
|
|
||||||
$appsUser = "$apps\$env:COMPUTERNAME"
|
|
||||||
$appsLegacy = "$apps\legacy"
|
|
||||||
|
|
||||||
# Mounts
|
|
||||||
# $mounts = "$data\mounts"
|
|
||||||
|
|
||||||
# GLOBAL
|
|
||||||
$storage = "$env:USERPROFILE\Storage"
|
|
||||||
|
|
||||||
# $userName = "oqyude"
|
|
||||||
# $diskLabel = "S:"
|
|
||||||
# $games = "$diskLabel\Games"
|
|
||||||
# $storageGames = "N:\Games\.storage"
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# Init
|
||||||
|
Set-Location -Path $PSScriptRoot
|
||||||
|
|
||||||
|
$root = Join-Path $PSScriptRoot ".."
|
||||||
|
|
||||||
|
$varsFile = Join-Path $root "src\vars.ps1"
|
||||||
|
if (Test-Path $varsFile) {
|
||||||
|
. $varsFile
|
||||||
|
} else {
|
||||||
|
Write-Warning "Vars file not found: $varsFile"
|
||||||
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
|
# Undone
|
||||||
param(
|
param(
|
||||||
[string]$csvPath = $appsAll
|
[string]$csvPath = $appsAll
|
||||||
)
|
)
|
||||||
|
|
||||||
# Импорт CSV
|
|
||||||
$apps = Import-Csv -Path $csvPath
|
$apps = Import-Csv -Path $csvPath
|
||||||
|
|
||||||
foreach ($app in $apps) {
|
foreach ($app in $apps) {
|
||||||
@@ -10,7 +10,6 @@ foreach ($app in $apps) {
|
|||||||
|
|
||||||
$AppName = $app.App
|
$AppName = $app.App
|
||||||
|
|
||||||
# Разворачиваем пути
|
|
||||||
$rawFrom = $app.From -replace '\$AppName', $AppName
|
$rawFrom = $app.From -replace '\$AppName', $AppName
|
||||||
$rawTo = $app.To -replace '\$AppName', $AppName
|
$rawTo = $app.To -replace '\$AppName', $AppName
|
||||||
|
|
||||||
@@ -1,30 +1,31 @@
|
|||||||
|
# Manage symlink state. Reconnect = disconnect && connect
|
||||||
param(
|
param(
|
||||||
[string]$action = "reconnect" # connect | disconnect | reconnect
|
[string]$action = "reconnect" # connect | disconnect | reconnect
|
||||||
)
|
)
|
||||||
|
|
||||||
Write-Host "Apps Manager запущен с действием: $action"
|
Write-Host "Apps Manager started with action: $action"
|
||||||
|
|
||||||
# CSV-файл с приложениями
|
# CSV file with applications
|
||||||
$config = $appsAll
|
$config = $appsAll
|
||||||
|
|
||||||
# Импорт CSV
|
# Import CSV
|
||||||
$csv = Import-Csv -Path $config
|
$csv = Import-Csv -Path $config
|
||||||
|
|
||||||
foreach ($app in $csv) {
|
foreach ($app in $csv) {
|
||||||
# Пропускаем отключённые
|
# Skip disabled entries
|
||||||
if ($app.Enabled -ne "1") { continue }
|
if ($app.Enabled -ne "1") { continue }
|
||||||
|
|
||||||
$AppName = $app.App
|
$AppName = $app.App
|
||||||
|
|
||||||
# Разворачиваем строки From и To с подстановкой $AppName
|
# Expand From and To strings with $AppName substitution
|
||||||
$rawFrom = $app.From -replace '\$AppName', $AppName
|
$rawFrom = $app.From -replace '\$AppName', $AppName
|
||||||
$rawTo = $app.To -replace '\$AppName', $AppName
|
$rawTo = $app.To -replace '\$AppName', $AppName
|
||||||
|
|
||||||
# Разворачиваем переменные окружения
|
# Expand environment variables
|
||||||
$from = $ExecutionContext.InvokeCommand.ExpandString($rawFrom)
|
$from = $ExecutionContext.InvokeCommand.ExpandString($rawFrom)
|
||||||
$to = $ExecutionContext.InvokeCommand.ExpandString($rawTo)
|
$to = $ExecutionContext.InvokeCommand.ExpandString($rawTo)
|
||||||
|
|
||||||
# Если путь To относительный, делаем его абсолютным относительно пользователя
|
# If To path is relative, make it absolute relative to the user
|
||||||
if (-not [System.IO.Path]::IsPathRooted($to)) {
|
if (-not [System.IO.Path]::IsPathRooted($to)) {
|
||||||
$to = Join-Path $env:USERPROFILE $to
|
$to = Join-Path $env:USERPROFILE $to
|
||||||
}
|
}
|
||||||
@@ -36,17 +37,17 @@ foreach ($app in $csv) {
|
|||||||
Write-Host " Expanded From: $from"
|
Write-Host " Expanded From: $from"
|
||||||
Write-Host " Expanded To : $to"
|
Write-Host " Expanded To : $to"
|
||||||
|
|
||||||
# Обработка isolate: выполняем подскрипт вместо симлинков
|
# Handle isolate type: execute a script instead of symlinks
|
||||||
if ($app.Type -eq "isolate") {
|
if ($app.Type -eq "isolate") {
|
||||||
if ($app.Script) {
|
if ($app.Script) {
|
||||||
# Шагово: сначала подставляем $AppName
|
# Step 1: replace $AppName
|
||||||
$scriptRaw = $app.Script -replace '\$AppName', $AppName
|
$scriptRaw = $app.Script -replace '\$AppName', $AppName
|
||||||
# Потом заменяем $Apps на путь $apps (если опечатка в CSV)
|
# Step 2: replace $Apps with $apps path (in case of typo in CSV)
|
||||||
$scriptRaw = $scriptRaw -replace '\$apps', $apps
|
$scriptRaw = $scriptRaw -replace '\$apps', $apps
|
||||||
# Теперь расширяем оставшиеся vars (env и т.д.)
|
# Step 3: expand remaining variables (env etc.)
|
||||||
$scriptPath = $ExecutionContext.InvokeCommand.ExpandString($scriptRaw)
|
$scriptPath = $ExecutionContext.InvokeCommand.ExpandString($scriptRaw)
|
||||||
} else {
|
} else {
|
||||||
# Fallback без Script
|
# Fallback if Script is not defined
|
||||||
$safeName = $AppName -replace ' ', '_'
|
$safeName = $AppName -replace ' ', '_'
|
||||||
$scriptPath = Join-Path $apps "$safeName.ps1"
|
$scriptPath = Join-Path $apps "$safeName.ps1"
|
||||||
}
|
}
|
||||||
@@ -54,7 +55,7 @@ foreach ($app in $csv) {
|
|||||||
Write-Host " Isolate mode: Executing script $scriptPath"
|
Write-Host " Isolate mode: Executing script $scriptPath"
|
||||||
if (Test-Path $scriptPath) {
|
if (Test-Path $scriptPath) {
|
||||||
try {
|
try {
|
||||||
# Передаём action и app-контекст в подскрипт
|
# Pass action and app context to the script
|
||||||
& $scriptPath -Action $action -AppName $AppName -From $from -To $to
|
& $scriptPath -Action $action -AppName $AppName -From $from -To $to
|
||||||
} catch {
|
} catch {
|
||||||
Write-Error "Script failed for $AppName`: $($_.Exception.Message)"
|
Write-Error "Script failed for $AppName`: $($_.Exception.Message)"
|
||||||
@@ -62,7 +63,7 @@ foreach ($app in $csv) {
|
|||||||
} else {
|
} else {
|
||||||
Write-Warning "Isolate script not found: $scriptPath"
|
Write-Warning "Isolate script not found: $scriptPath"
|
||||||
}
|
}
|
||||||
continue # Пропускаем симлинки
|
continue # Skip symlink handling
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($action.ToLower()) {
|
switch ($action.ToLower()) {
|
||||||
@@ -85,7 +86,7 @@ foreach ($app in $csv) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
default {
|
default {
|
||||||
Write-Warning "Неизвестное действие: $action"
|
Write-Warning "Unknown action: $action"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# LOCAL
|
||||||
|
|
||||||
|
# Modules
|
||||||
|
$appsDataManager = "$PSScriptRoot\modules\apps-data-manager.ps1"
|
||||||
|
|
||||||
|
# Package Manager Installers
|
||||||
|
$winget = "$PSScriptRoot\winget.ps1"
|
||||||
|
|
||||||
|
# Data folder
|
||||||
|
$data = "$root\data"
|
||||||
|
|
||||||
|
# Setup Data Folder
|
||||||
|
$apps = "$data\isolate"
|
||||||
|
$appsAll = "$data\apps-data.csv"
|
||||||
|
# $appsUser = "$apps\$env:COMPUTERNAME"
|
||||||
|
# $appsLegacy = "$apps\legacy"
|
||||||
|
|
||||||
|
# Mounts
|
||||||
|
# $mounts = "$data\mounts"
|
||||||
|
|
||||||
|
# GLOBAL
|
||||||
|
$storage = "$env:USERPROFILE\Storage"
|
||||||
|
|
||||||
|
# $userName = "oqyude"
|
||||||
|
# $diskLabel = "S:"
|
||||||
|
# $games = "$diskLabel\Games"
|
||||||
|
# $storageGames = "N:\Games\.storage"
|
||||||
Reference in New Issue
Block a user