modules/HomeLab.Core/Public/Configuration/Initialize-Configuration.ps1
function Initialize-Configuration { [CmdletBinding()] param( [Parameter(Mandatory = $false)] [string]$ConfigFile = $Global:Config.ConfigFile, [Parameter(Mandatory = $false)] [switch]$Silent ) Write-SafeLog -Message "Loading configuration from $ConfigFile" -Level Info -NoOutput:$Silent if (-not (Test-Path -Path $ConfigFile)) { Write-SafeLog -Message "Configuration file not found: $ConfigFile" -Level Warning -NoOutput:$Silent return $false } try { $configJson = Get-Content -Path $ConfigFile -Raw $config = $configJson | ConvertFrom-Json -AsHashtable # Update global configuration foreach ($key in $config.Keys) { $Global:Config[$key] = $config[$key] } Write-SafeLog -Message "Configuration loaded successfully." -Level Success -NoOutput:$Silent return $true } catch { Write-SafeLog -Message "Failed to load configuration: $_" -Level Error -NoOutput:$Silent return $false } } |