diff --git a/install.ps1 b/install.ps1 index 39c5e551..4da40abf 100644 --- a/install.ps1 +++ b/install.ps1 @@ -162,17 +162,26 @@ if ($InstallMethod -eq "standalone") { Write-Host "| [OK] Installed ccs.ps1" } -# Install uninstall script +# Install uninstall script as ccs-uninstall.ps1 if ($ScriptDir -and (Test-Path "$ScriptDir\uninstall.ps1")) { - # Only copy if source and destination are different + # Copy uninstall.ps1 as ccs-uninstall.ps1 (similar to Linux symlink approach) if ($ScriptDir -ne $CcsDir) { - Copy-Item "$ScriptDir\uninstall.ps1" "$CcsDir\uninstall.ps1" -Force + Copy-Item "$ScriptDir\uninstall.ps1" "$CcsDir\ccs-uninstall.ps1" -Force + } + # Clean up old uninstall.ps1 from previous installations + if (Test-Path "$CcsDir\uninstall.ps1") { + Remove-Item "$CcsDir\uninstall.ps1" -Force -ErrorAction SilentlyContinue } Write-Host "| [OK] Installed uninstaller" } elseif ($InstallMethod -eq "standalone") { try { $BaseUrl = "https://raw.githubusercontent.com/kaitranntt/ccs/main" - Invoke-WebRequest -Uri "$BaseUrl/uninstall.ps1" -OutFile "$CcsDir\uninstall.ps1" -UseBasicParsing + # Download uninstall.ps1 as ccs-uninstall.ps1 + Invoke-WebRequest -Uri "$BaseUrl/uninstall.ps1" -OutFile "$CcsDir\ccs-uninstall.ps1" -UseBasicParsing + # Clean up old uninstall.ps1 from previous installations + if (Test-Path "$CcsDir\uninstall.ps1") { + Remove-Item "$CcsDir\uninstall.ps1" -Force -ErrorAction SilentlyContinue + } Write-Host "| [OK] Installed uninstaller" } catch { Write-Host "| [!] Could not download uninstaller (optional)" diff --git a/uninstall.ps1 b/uninstall.ps1 index 7642999b..82383828 100644 --- a/uninstall.ps1 +++ b/uninstall.ps1 @@ -16,8 +16,8 @@ if (Test-Path "$CcsDir\ccs.ps1") { Write-Host "[i] No ccs.ps1 found at $CcsDir" } -# Remove uninstall script itself (will be last) -$UninstallScript = "$CcsDir\uninstall.ps1" +# Get this script's path for self-removal (works whether named uninstall.ps1 or ccs-uninstall.ps1) +$UninstallScript = $PSCommandPath # Remove from PATH $UserPath = [Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::User) @@ -40,7 +40,7 @@ if (Test-Path $CcsDir) { Remove-Item $CcsDir -Recurse -Force Write-Host "[OK] Removed: $CcsDir" } else { - # If keeping directory, remove uninstall script + # If keeping directory, remove this uninstall script if (Test-Path $UninstallScript) { Remove-Item $UninstallScript -Force Write-Host "[OK] Removed: $UninstallScript"