ps/Modules/Alkami.PowerShell.Configuration/Public/Get-ConfigurationFiles.ps1

44 lines
1.7 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
function Get-ConfigurationFiles {
<#
.SYNOPSIS
Pulls an Array of Configuration Files Which Need Updates
.PARAMETER stagedFilePath
The base path to search for config files in, such as C:\ORB or C:\Temp\Deploy\ORB
.PARAMETER findTempFiles
Defaults to $false. If set to $true, looks for new.*.config instead of *.config. Used when looking for the temporary
config files which come out of the build process
#>
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]$stagedFilePath,
[Parameter(Mandatory=$false)]
[bool]$findTempFiles = $false
)
$logLead = (Get-LogLeadName);
Write-Host ("$logLead : Finding Configuration Files in Non-Symlink Folders Under {0}" -f $stagedFilePath)
$tempOrbfolders = Get-ChildItem -Directory $stagedFilePath | `
Where-Object { $_.Attributes -notmatch "ReparsePoint" -and $_.Name -ne "Shared" } | `
Select-Object -ExpandProperty FullName
# Get-ChildItem is a bit finicky. We're going to trim \ from the end, then add \*, to use Include/Exclude without recursion
$tempOrbFolders = $tempOrbFolders | ForEach-Object { $_.TrimEnd("\") | ForEach-Object {$_ + "\*"}}
if ($findTempFiles)
{
$configfiles = Get-ChildItem $tempOrbfolders -Include "new.*.config" -Exclude "new.log4net.config" | Select-Object -ExpandProperty FullName
}
else
{
$configfiles = Get-ChildItem $tempOrbfolders -Include "*.config" -Exclude "log4net.config","new*.config" | Select-Object -ExpandProperty FullName
}
Write-Verbose ("$logLead : Found {0} Configuration Files" -f $configFiles.Count)
return $configFiles
}