fix(windows): create ccs-uninstall command matching documented behavior

Windows install now creates ccs-uninstall.ps1 instead of uninstall.ps1,
matching documented command and Linux/macOS naming convention.

Changes:
- Copy/download uninstall.ps1 as ccs-uninstall.ps1 directly
- Use $PSCommandPath for dynamic self-removal (works with any filename)
- Clean up old uninstall.ps1 during upgrades
- Maintain cross-platform consistency

Fixes issue where Windows users couldn't run documented `ccs-uninstall`
command after quick install via irm ccs.kaitran.ca/install.ps1 | iex
This commit is contained in:
kaitranntt
2025-11-02 14:29:27 -05:00
parent 861467e307
commit 7bd2e9e4ba
2 changed files with 16 additions and 7 deletions
+13 -4
View File
@@ -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)"
+3 -3
View File
@@ -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"