mirror of
https://github.com/lukaszraczylo/claude-mnemonic.git
synced 2026-06-05 23:03:55 +00:00
114 lines
4.5 KiB
PowerShell
114 lines
4.5 KiB
PowerShell
# Claude Mnemonic - Windows Uninstallation Script
|
|
# Usage: irm https://raw.githubusercontent.com/lukaszraczylo/claude-mnemonic/main/scripts/uninstall.ps1 | iex
|
|
#
|
|
# Options:
|
|
# -KeepData Keep the data directory (~/.claude-mnemonic/)
|
|
# -Purge Remove everything including data (default)
|
|
|
|
param(
|
|
[switch]$KeepData,
|
|
[switch]$Purge
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
# Configuration
|
|
$InstallDir = "$env:USERPROFILE\.claude\plugins\marketplaces\claude-mnemonic"
|
|
$CacheDir = "$env:USERPROFILE\.claude\plugins\cache\claude-mnemonic"
|
|
$DataDir = "$env:USERPROFILE\.claude-mnemonic"
|
|
$PluginsFile = "$env:USERPROFILE\.claude\plugins\installed_plugins.json"
|
|
$SettingsFile = "$env:USERPROFILE\.claude\settings.json"
|
|
$MarketplacesFile = "$env:USERPROFILE\.claude\plugins\known_marketplaces.json"
|
|
$PluginKey = "claude-mnemonic@claude-mnemonic"
|
|
|
|
function Write-Info { param($Message) Write-Host "[INFO] $Message" -ForegroundColor Blue }
|
|
function Write-Success { param($Message) Write-Host "[OK] $Message" -ForegroundColor Green }
|
|
function Write-Warn { param($Message) Write-Host "[WARN] $Message" -ForegroundColor Yellow }
|
|
|
|
Write-Host ""
|
|
Write-Host "================================================================" -ForegroundColor Cyan
|
|
Write-Host " Claude Mnemonic - Windows Uninstallation Script " -ForegroundColor Cyan
|
|
Write-Host "================================================================" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
|
|
# Stop worker processes
|
|
Write-Info "Stopping worker processes..."
|
|
Get-Process | Where-Object { $_.ProcessName -like "*worker*" -and $_.Path -like "*claude-mnemonic*" } | Stop-Process -Force -ErrorAction SilentlyContinue
|
|
Start-Sleep -Seconds 1
|
|
Write-Success "Worker processes stopped"
|
|
|
|
# Remove plugin directories
|
|
Write-Info "Removing plugin directories..."
|
|
|
|
if (Test-Path $InstallDir) {
|
|
Remove-Item -Recurse -Force $InstallDir -ErrorAction SilentlyContinue
|
|
Write-Success "Removed $InstallDir"
|
|
} else {
|
|
Write-Info "Plugin directory not found (already removed)"
|
|
}
|
|
|
|
if (Test-Path $CacheDir) {
|
|
Remove-Item -Recurse -Force $CacheDir -ErrorAction SilentlyContinue
|
|
Write-Success "Removed $CacheDir"
|
|
}
|
|
|
|
# Remove from Claude Code configuration
|
|
Write-Info "Cleaning up Claude Code configuration..."
|
|
|
|
try {
|
|
if (Test-Path $PluginsFile) {
|
|
$Plugins = Get-Content $PluginsFile -Raw | ConvertFrom-Json
|
|
if ($Plugins.plugins.PSObject.Properties[$PluginKey]) {
|
|
$Plugins.plugins.PSObject.Properties.Remove($PluginKey)
|
|
$Plugins | ConvertTo-Json -Depth 10 | Out-File -Encoding UTF8 $PluginsFile
|
|
Write-Success "Removed from installed_plugins.json"
|
|
}
|
|
}
|
|
|
|
if (Test-Path $SettingsFile) {
|
|
$Settings = Get-Content $SettingsFile -Raw | ConvertFrom-Json
|
|
if ($Settings.enabledPlugins -and $Settings.enabledPlugins.PSObject.Properties[$PluginKey]) {
|
|
$Settings.enabledPlugins.PSObject.Properties.Remove($PluginKey)
|
|
$Settings | ConvertTo-Json -Depth 10 | Out-File -Encoding UTF8 $SettingsFile
|
|
Write-Success "Removed from settings.json"
|
|
}
|
|
}
|
|
|
|
if (Test-Path $MarketplacesFile) {
|
|
$Marketplaces = Get-Content $MarketplacesFile -Raw | ConvertFrom-Json
|
|
if ($Marketplaces.PSObject.Properties["claude-mnemonic"]) {
|
|
$Marketplaces.PSObject.Properties.Remove("claude-mnemonic")
|
|
$Marketplaces | ConvertTo-Json -Depth 10 | Out-File -Encoding UTF8 $MarketplacesFile
|
|
Write-Success "Removed from known_marketplaces.json"
|
|
}
|
|
}
|
|
} catch {
|
|
Write-Warn "Error cleaning up configuration files: $_"
|
|
}
|
|
|
|
# Handle data directory
|
|
if (Test-Path $DataDir) {
|
|
if ($KeepData) {
|
|
Write-Warn "Keeping data directory: $DataDir"
|
|
Write-Warn "To remove it later, run: Remove-Item -Recurse -Force $DataDir"
|
|
} else {
|
|
Write-Info "Removing data directory..."
|
|
Remove-Item -Recurse -Force $DataDir -ErrorAction SilentlyContinue
|
|
Write-Success "Removed $DataDir"
|
|
}
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "================================================================" -ForegroundColor Green
|
|
Write-Host " Uninstallation Complete! " -ForegroundColor Green
|
|
Write-Host "================================================================" -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
if ($KeepData) {
|
|
Write-Host " Data preserved at: $DataDir" -ForegroundColor White
|
|
Write-Host " To reinstall: irm .../install.ps1 | iex" -ForegroundColor White
|
|
Write-Host ""
|
|
}
|
|
|
|
Write-Success "Claude Mnemonic has been uninstalled"
|