public/functions/Import-PowerStubConfiguration.ps1
|
<#
.SYNOPSIS Imports configuration from the configuration file in the module folder. .DESCRIPTION .LINK .PARAMETER .INPUTS None. You cannot pipe objects to this function. .OUTPUTS .EXAMPLES #> function Import-PowerStubConfiguration { param ( [switch] $reset ) if ($reset) { $Script:PSTBSettings = Get-PowerStubConfigurationDefaults Export-PowerStubConfiguration return } $noImport = Get-PowerStubConfigurationKey 'InternalConfigKeys' $fileName = Get-PowerStubConfigurationKey 'ConfigFile' Write-Verbose "Current Configuration:" Write-Verbose ($Script:PSTBSettings | ConvertTo-Json) Write-Verbose "Importing File: $fileName" if (Test-Path $fileName) { $newConfig = Get-Content -Path $fileName -Raw | ConvertFrom-Json | ConvertTo-Hashtable foreach ($key in $newConfig.Keys) { #do not import values for internal keys if ($noImport -contains $key) { continue } Write-Verbose "Importing Configuration Key: $key" $Script:PSTBSettings[$key] = $newConfig[$key] } } else { Write-Verbose "No configuration file found. Using defaults." } Write-Verbose "New Configuration:" Write-Verbose ($Script:PSTBSettings | ConvertTo-Json) } |