ps/Modules/Alkami.PowerShell.Configuration/Public/Rename-TemporaryConfigFiles.ps1

43 lines
1.3 KiB
PowerShell
Raw Permalink Normal View History

2023-05-30 22:51:22 -07:00
function Rename-TemporaryConfigFiles {
<#
.SYNOPSIS
Renames Temporary Configuration Files to remove the "new." prefix. For example, new.web.config is renamed to web.config
#>
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string[]]$temporaryConfigFiles,
[Parameter(Mandatory=$false)]
[Alias("Force")]
[switch]$forceOverwrite
)
$logLead = (Get-LogLeadName);
foreach ($configfile in $temporaryConfigFiles) {
[Regex]$newMatchRegex = "\\new\."
$finalConfigFileName = $newMatchRegex.Replace($configFile, "\")
if (Test-Path $finalConfigFileName)
{
if ($forceOverwrite.IsPresent)
{
Write-Host ("$logLead : Config file '{0}' already exists and will be removed before rename." -f $finalConfigFileName)
Remove-Item "$finalConfigFileName" -Force
}
else
{
Write-Warning ("$logLead : Config file '{0}' already exists. No changes will be made. To overwrite the file, use the -Force parameter" -f $finalConfigFileName)
continue
}
}
Write-Host ("$logLead : Renaming file '{0}' to '{1}'" -f $configFile, $finalConfigFileName)
Rename-Item "$configfile" "$finalConfigFileName" -Force:$forceOverwrite
}
}