Public/Uninstall-UipathcliTool.ps1

function Uninstall-UipathcliTool {
<#
.SYNOPSIS
    Removes the uipathcli binary directory and cleans its PATH entry from the
    user environment registry.
 
.PARAMETER ToolBase
    Root directory used during installation. Defaults to %LOCALAPPDATA%\cpmf\tools.
#>

    [CmdletBinding(SupportsShouldProcess)]
    param(
        [string]$ToolBase = (Join-Path $env:LOCALAPPDATA 'cpmf\tools')
    )

    Set-StrictMode -Version Latest
    $ErrorActionPreference = 'Stop'

    $p = Get-CpmfUipsToolPaths -ToolBase $ToolBase

    Write-Verbose "[Uninstall] Removing uipathcli ..."
    if (Test-Path $p.UipathcliDir) {
        if ($PSCmdlet.ShouldProcess($p.UipathcliDir, 'Remove uipathcli directory')) {
            Remove-Item $p.UipathcliDir -Recurse -Force
            Write-Verbose "[Uninstall] Removed $($p.UipathcliDir)"
        }
    } else {
        Write-Verbose "[Uninstall] $($p.UipathcliDir) not found — skipping"
    }

    $token = '%LOCALAPPDATA%\cpmf\tools\uipathcli'
    if ($PSCmdlet.ShouldProcess("PATH (User): $token", 'Remove entry')) {
        if (Remove-FromUserPath $token) {
            Write-Verbose "[Uninstall] Removed $token from user PATH"
        } else {
            Write-Verbose "[Uninstall] $token not found in user PATH — skipping"
        }
    }

    Write-Verbose "[Uninstall] Done"
}