modules/HomeLab.Core/Public/Configuration/Test-Configuration.ps1
function Test-Configuration { [CmdletBinding()] param() $validationResults = @{ IsValid = $true MissingParameters = @() InvalidParameters = @() } # Required parameters $requiredParams = @('env', 'loc', 'project', 'location', 'LogFile', 'ConfigFile') # Valid values for certain parameters $validValues = @{ env = @('dev', 'test', 'prod') loc = @('saf', 'we', 'ea') } # Check for missing parameters foreach ($param in $requiredParams) { if (-not $Global:Config.ContainsKey($param) -or [string]::IsNullOrEmpty($Global:Config[$param])) { $validationResults.IsValid = $false $validationResults.MissingParameters += $param } } # Check for invalid values foreach ($param in $validValues.Keys) { if ($Global:Config.ContainsKey($param) -and -not [string]::IsNullOrEmpty($Global:Config[$param])) { if ($validValues[$param] -notcontains $Global:Config[$param]) { $validationResults.IsValid = $false $validationResults.InvalidParameters += @{ Parameter = $param Value = $Global:Config[$param] ValidValues = $validValues[$param] } } } } return [PSCustomObject]$validationResults } |