Private/Get-ServerConfiguration.ps1
function Get-ServerConfiguration { [CmdletBinding()] [OutputType([hashtable])] param( [Parameter()] [string] $pathServerConfiguration ) try { if ( [string]::IsNullOrWhiteSpace($pathServerConfiguration) ) { throw "Server configuration path parameter cannot be null or empty" } $configContent = Get-Content $pathServerConfiguration -Raw if ( -not [string]::IsNullOrWhiteSpace($configContent) ) { try { $jsonContent = $configContent | ConvertFrom-Json } catch { Write-Warning "Failed to parse JSON from server configuration file: $pathServerConfiguration" Return } } else { Write-Warning "Server configuration file is empty: $pathServerConfiguration" Return } $servers = New-ServerConfigurationFromJson -JsonConfig $jsonContent return @{ Name = $jsonContent.name Description = $jsonContent.description Interval = $jsonContent.interval Servers = $servers ConfigPath = Split-Path $pathServerConfiguration -Parent } } catch { $errorMessage = "Error loading server configuration from '$pathServerConfiguration': $($_.Exception.Message)" throw $errorMessage } } |