hermes-hub/scripts/uninstall.ps1

60 lines
2.9 KiB
PowerShell

# Hermes Hub PowerShell Uninstaller
# Removes application files and launcher. User data and credentials are preserved by default unless -PurgeUserData is explicitly passed.
[CmdletBinding()]
param(
[switch]$PurgeUserData = $false
)
$ErrorActionPreference = "Stop"
Write-Host "======================================================================" -ForegroundColor Yellow
Write-Host " HERMES HUB UNINSTALLER (PowerShell) " -ForegroundColor Yellow
Write-Host "======================================================================" -ForegroundColor Yellow
$HermesHome = $env:HERMES_HOME
if ([string]::IsNullOrWhiteSpace($HermesHome)) {
$HermesHome = Join-Path $env:LOCALAPPDATA "hermes"
}
$TargetDir = Join-Path $env:LOCALAPPDATA "Programs\HermesHub"
Write-Host "[1/3] Removing application binaries..." -ForegroundColor Gray
if (Test-Path $TargetDir) {
Remove-Item -Path $TargetDir -Recurse -Force -ErrorAction SilentlyContinue
}
$HomeLauncher = Join-Path $HermesHome "HermesHub.exe"
if (Test-Path $HomeLauncher) {
Remove-Item -Path $HomeLauncher -Force -ErrorAction SilentlyContinue
}
$HomeWebLauncher = Join-Path $HermesHome "HermesHubWeb.exe"
if (Test-Path $HomeWebLauncher) {
Remove-Item -Path $HomeWebLauncher -Force -ErrorAction SilentlyContinue
}
Write-Host "[2/3] Removing plugin integration..." -ForegroundColor Gray
$PluginDir = Join-Path $HermesHome "plugins\antigravity-provider"
if (Test-Path $PluginDir) {
Remove-Item -Path $PluginDir -Recurse -Force -ErrorAction SilentlyContinue
}
# 3. User Data Handling
if ($PurgeUserData) {
Write-Host "[3/3] Purging user data (--PurgeUserData specified)..." -ForegroundColor Red
$ConfigDir = Join-Path $HermesHome "config\router_profiles.yaml"
if (Test-Path $ConfigDir) { Remove-Item -Path $ConfigDir -Force -ErrorAction SilentlyContinue }
$AgyProfiles = Join-Path $HermesHome "agy_profiles"
if (Test-Path $AgyProfiles) { Remove-Item -Path $AgyProfiles -Recurse -Force -ErrorAction SilentlyContinue }
$CodexProfiles = Join-Path $HermesHome "codex_profiles"
if (Test-Path $CodexProfiles) { Remove-Item -Path $CodexProfiles -Recurse -Force -ErrorAction SilentlyContinue }
$OpengoProfiles = Join-Path $HermesHome "opengo_profiles"
if (Test-Path $OpengoProfiles) { Remove-Item -Path $OpengoProfiles -Recurse -Force -ErrorAction SilentlyContinue }
Write-Host " User data purged."
} else {
Write-Host "[3/3] Preserving user data and credentials." -ForegroundColor Green
Write-Host " Your auth profiles and settings in $HermesHome remain intact."
}
Write-Host "======================================================================" -ForegroundColor Green
Write-Host " HERMES HUB UNINSTALLED SUCCESSFULLY " -ForegroundColor Green
Write-Host "======================================================================" -ForegroundColor Green
exit 0