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
|
||||
|
||||
# run.ps1 — проверка прав администратора
|
||||
# Check for administrator privileges
|
||||
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
|
||||
exit
|
||||
}
|
||||
|
||||
# Если админ — продолжаем
|
||||
Write-Host "Запуск от имени администратора подтвержден."
|
||||
Write-Host "Administrator privileges confirmed."
|
||||
|
||||
# Аргумент действия
|
||||
$action = if ($args.Count -ge 1) { $args[0] } else { "connect" }
|
||||
# Define available actions
|
||||
$actions = @("reconnect", "connect", "disconnect")
|
||||
|
||||
# Вызов apps-manager.ps1 с передачей аргумента
|
||||
$appsManager = Join-Path $PSScriptRoot "apps-manager.ps1"
|
||||
. $appsManager $action
|
||||
# Determine action: from argument or interactive menu
|
||||
if ($args.Count -ge 1) {
|
||||
$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(
|
||||
[string]$csvPath = $appsAll
|
||||
)
|
||||
|
||||
# Импорт CSV
|
||||
$apps = Import-Csv -Path $csvPath
|
||||
|
||||
foreach ($app in $apps) {
|
||||
@@ -10,7 +10,6 @@ foreach ($app in $apps) {
|
||||
|
||||
$AppName = $app.App
|
||||
|
||||
# Разворачиваем пути
|
||||
$rawFrom = $app.From -replace '\$AppName', $AppName
|
||||
$rawTo = $app.To -replace '\$AppName', $AppName
|
||||
|
||||
@@ -1,30 +1,31 @@
|
||||
# Manage symlink state. Reconnect = disconnect && connect
|
||||
param(
|
||||
[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
|
||||
|
||||
# Импорт CSV
|
||||
# Import CSV
|
||||
$csv = Import-Csv -Path $config
|
||||
|
||||
foreach ($app in $csv) {
|
||||
# Пропускаем отключённые
|
||||
# Skip disabled entries
|
||||
if ($app.Enabled -ne "1") { continue }
|
||||
|
||||
$AppName = $app.App
|
||||
|
||||
# Разворачиваем строки From и To с подстановкой $AppName
|
||||
# Expand From and To strings with $AppName substitution
|
||||
$rawFrom = $app.From -replace '\$AppName', $AppName
|
||||
$rawTo = $app.To -replace '\$AppName', $AppName
|
||||
|
||||
# Разворачиваем переменные окружения
|
||||
# Expand environment variables
|
||||
$from = $ExecutionContext.InvokeCommand.ExpandString($rawFrom)
|
||||
$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)) {
|
||||
$to = Join-Path $env:USERPROFILE $to
|
||||
}
|
||||
@@ -36,17 +37,17 @@ foreach ($app in $csv) {
|
||||
Write-Host " Expanded From: $from"
|
||||
Write-Host " Expanded To : $to"
|
||||
|
||||
# Обработка isolate: выполняем подскрипт вместо симлинков
|
||||
# Handle isolate type: execute a script instead of symlinks
|
||||
if ($app.Type -eq "isolate") {
|
||||
if ($app.Script) {
|
||||
# Шагово: сначала подставляем $AppName
|
||||
# Step 1: replace $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
|
||||
# Теперь расширяем оставшиеся vars (env и т.д.)
|
||||
# Step 3: expand remaining variables (env etc.)
|
||||
$scriptPath = $ExecutionContext.InvokeCommand.ExpandString($scriptRaw)
|
||||
} else {
|
||||
# Fallback без Script
|
||||
# Fallback if Script is not defined
|
||||
$safeName = $AppName -replace ' ', '_'
|
||||
$scriptPath = Join-Path $apps "$safeName.ps1"
|
||||
}
|
||||
@@ -54,7 +55,7 @@ foreach ($app in $csv) {
|
||||
Write-Host " Isolate mode: Executing script $scriptPath"
|
||||
if (Test-Path $scriptPath) {
|
||||
try {
|
||||
# Передаём action и app-контекст в подскрипт
|
||||
# Pass action and app context to the script
|
||||
& $scriptPath -Action $action -AppName $AppName -From $from -To $to
|
||||
} catch {
|
||||
Write-Error "Script failed for $AppName`: $($_.Exception.Message)"
|
||||
@@ -62,7 +63,7 @@ foreach ($app in $csv) {
|
||||
} else {
|
||||
Write-Warning "Isolate script not found: $scriptPath"
|
||||
}
|
||||
continue # Пропускаем симлинки
|
||||
continue # Skip symlink handling
|
||||
}
|
||||
|
||||
switch ($action.ToLower()) {
|
||||
@@ -85,7 +86,7 @@ foreach ($app in $csv) {
|
||||
}
|
||||
}
|
||||
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"
|
||||
@@ -1,3 +1,3 @@
|
||||
Invoke-WebRequest -Uri https://aka.ms/getwinget -OutFile winget.msixbundle
|
||||
Add-AppxPackage winget.msixbundle
|
||||
Invoke-WebRequest -Uri https://aka.ms/getwinget -OutFile winget.msixbundle
|
||||
Add-AppxPackage winget.msixbundle
|
||||
del winget.msixbundle
|
||||
Reference in New Issue
Block a user