modules/HomeLab.Core/Public/Configuration/Save-Configuration.ps1
function Save-Configuration { [CmdletBinding()] param( [Parameter(Mandatory = $false)] [string]$ConfigFile = $Global:Config.ConfigFile, [Parameter(Mandatory = $false)] [switch]$Silent ) Write-SafeLog -Message "Saving configuration to $ConfigFile" -Level Info -NoOutput:$Silent try { # Create directory if it doesn't exist $configDir = Split-Path -Path $ConfigFile -Parent if (-not (Test-Path -Path $configDir)) { New-Item -ItemType Directory -Path $configDir -Force | Out-Null } # Convert configuration to JSON and save $configJson = $Global:Config | ConvertTo-Json -Depth 5 Set-Content -Path $ConfigFile -Value $configJson -Force Write-SafeLog -Message "Configuration saved successfully." -Level Success -NoOutput:$Silent return $true } catch { Write-SafeLog -Message "Failed to save configuration: $_" -Level Error -NoOutput:$Silent return $false } } |