powershell maybe now?

This commit is contained in:
2025-10-08 00:42:02 +03:00
parent 173a4643fa
commit bf8ad71bc3
44 changed files with 100 additions and 625 deletions
+87
View File
@@ -0,0 +1,87 @@
param(
[string]$Action = "reconnect",
[string]$AppName = "EqualizerAPO",
[string]$From,
[string]$To
)
# Валидация входа (fallback для кривых путей)
if (-not $From) {
Write-Error "No From path aborting"
Exit 1
}
if (-not [System.IO.Path]::IsPathRooted($To)) {
$To = Join-Path $env:ProgramFiles $AppName
Write-Host "Fixed To: $To"
}
# Константы (уютно в одном месте)
$configDir = Join-Path $To "config"
$regPath = "HKLM:\SOFTWARE\EqualizerAPO"
$regKey = "ConfigPath"
$vstDir = Join-Path $To "VSTPlugins"
$FabFilterLink = Join-Path $vstDir "FabFilter Pro-Q 3.dll"
$globalDLL = "$env:ProgramFiles\VSTPlugins\FabFilter\FabFilter Pro-Q 3.dll"
Write-Host "Isolate: $AppName ($Action) | From: $From | To: $To"
# Функции для чистоты (disconnect/connect как модули)
function Disconnect-App {
Write-Host " Disconnecting..."
# Чисти config (как в BAT)
if (Test-Path $configDir) {
Remove-Item $configDir -Recurse -Force -ErrorAction SilentlyContinue
Write-Host " Config wiped"
}
# Удаляй линк (не оригинал)
if (Test-Path $FabFilterLink) {
Remove-Item $FabFilterLink -Force -ErrorAction SilentlyContinue
Write-Host " VST link removed"
}
# Чисти реестр
if (Test-Path $regPath) {
Remove-ItemProperty -Path $regPath -Name $regKey -ErrorAction SilentlyContinue
Write-Host " Registry cleaned"
}
}
function Connect-App {
Write-Host " Connecting..."
# Реестр на storage
if (-not (Test-Path $regPath)) {
New-Item -Path $regPath -Force | Out-Null
}
Set-ItemProperty -Path $regPath -Name $regKey -Value $From -Type String -Force
Write-Host " ConfigPath -> $From"
# Линк VST: в APO на системный (как в BAT)
if (-not (Test-Path $vstDir)) {
New-Item -ItemType Directory -Path $vstDir -Force | Out-Null
}
if (Test-Path $FabFilterLink) {
Remove-Item $FabFilterLink -Force
}
if (Test-Path $globalDLL) {
New-Item -ItemType SymbolicLink -Path $FabFilterLink -Value $globalDLL -Force | Out-Null
Write-Host " VST linked: $FabFilterLink -> $globalDLL"
} else {
Write-Warning " No system VST: $globalDLL (install it?)"
}
}
# Основная логика
switch ($Action.ToLower()) {
"disconnect" { Disconnect-App }
"connect" { Connect-App }
"reconnect" {
Disconnect-App
Connect-App
}
default { Write-Warning "Unknown action: $Action" }
}
Write-Host "Done with $AppName"