Public/Tasks/Invoke-RemoveFolderTask.ps1

#Requires -Modules SitecoreInstallFramework, SitecoreFundamentals

Set-StrictMode -Version Latest



Function Invoke-RemoveFolderTask {
    [CmdletBinding(SupportsShouldProcess = $true)]
    param(
        [Parameter(Mandatory = $true)]
        [string]$Name
    )

    $whatifsetting = $false
    if ($PSBoundParameters.ContainsKey('WhatIf')) {
        $whatifsetting = $PSBoundParameters['WhatIf']
    }
    
    if (Test-Path $name) {
        Write-TaskInfo "Removing Folder $name" -Tag 'RemoveFolder'
        Invoke-EnsurePathTask -Clean $Name -WhatIf:$whatifsetting
        if ($PSCmdlet.ShouldProcess($Name)) {
            Remove-Item -Path $Name -Recurse -Force
        }
    }
    else {
        Write-TaskInfo "Folder doesn't exist {$name}" -Tag 'RemoveFolder'
    }
}

Register-SitecoreInstallExtension -Command Invoke-RemoveFolderTask -As RemoveFolder -Type Task -Force