Private/Get-UpgradeInitializationScriptConfig.ps1
function Get-UpgradeInitializationScriptConfig { param ( [Parameter(Mandatory=$true)] [string] $configFile ) # Commented to make sure that the variable is always being refreshed. # if (!((Get-Variable -scope Script upgradeInitializationScriptConfig -ErrorAction SilentlyContinue) -and $upgradeInitializationScriptConfig)) { Set-Variable -scope Script -Name upgradeInitializationScriptConfig -Value @{ "Environment" = @{ "Multitenant" = $false } "SQL" = @{ "Server" = "" "Instance" = "" "Database" = "" } "FromBC" = @{ "ServerInstance" = "" "Version" = "" "Country" = "" "LSVersion" = "" "ServerPath" = "" "ClientPath" = "" } "ToBC" = @{ "ServerInstance" = "" "Version" = "" "Country" = "" "LSVersion" = "" "ServerPath" = "" } "CustomExtensions" = @( @{ "AppId" = "" "AppName" = "" "AppPublisher" = "" "AppVersion" = "" } ) } if (Test-Path $configFile) { try { $savedConfig = Get-Content $configFile | ConvertFrom-Json if ("$savedConfig") { $keys = $upgradeInitializationScriptConfig.Keys | ForEach-Object { $_ } $keys | ForEach-Object { if ($savedConfig.PSObject.Properties.Name -eq "$_") { if (!$silent) { Write-Host "Setting $_ = $($savedConfig."$_")" } $upgradeInitializationScriptConfig."$_" = $savedConfig."$_" } } } } catch { throw "Error reading configuration file $configFile, cannot execute function. Error: $_." } } Export-ModuleMember -Variable upgradeInitializationScriptConfig # } } Export-ModuleMember -Function New-UpgradeInitializationScriptFromConfigFile |