Private/Restore-KadenManagedFile.ps1
|
function Restore-KadenManagedFile { <# .SYNOPSIS Copy recorded backups onto managed paths after a failed apply or a Restore. #> [CmdletBinding()] param( [Parameter(Mandatory = $true)] [string]$ChildRoot, [Parameter(Mandatory = $true)] $Operations ) $reversible = @($Operations | Where-Object { $_.replacementStatus -eq 'complete' -or $_.replacementStatus -eq 'intent-recorded' }) for ($i = $reversible.Count - 1; $i -ge 0; $i--) { $op = $reversible[$i] $destPath = Resolve-KadenContainedPath -Root $ChildRoot -RelativePath ([string]$op.destination) if ($op.backupPath -and (Test-Path -LiteralPath ([string]$op.backupPath))) { $destDir = Split-Path -Parent $destPath if (-not (Test-Path -LiteralPath $destDir)) { New-Item -ItemType Directory -Path $destDir -Force | Out-Null } Copy-Item -LiteralPath ([string]$op.backupPath) -Destination $destPath -Force } elseif (Test-Path -LiteralPath $destPath) { Remove-Item -LiteralPath $destPath -Force } } } |