From d02ab2b22b3607fdef41a9898f83659bbfd986a1 Mon Sep 17 00:00:00 2001 From: Mindfang Date: Wed, 14 May 2025 17:43:12 -0500 Subject: [PATCH] Add Import-Config function --- PSUtilities/ScriptTools.ps1 | 51 +++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/PSUtilities/ScriptTools.ps1 b/PSUtilities/ScriptTools.ps1 index 2acd09e..f151a3a 100644 --- a/PSUtilities/ScriptTools.ps1 +++ b/PSUtilities/ScriptTools.ps1 @@ -392,6 +392,57 @@ Function Import-CSVConfig () { Exit } } + +Function Import-Config () { + <# + .SYNOPSIS + A brief description of the function or script. + + .DESCRIPTION + A longer description. + + .PARAMETER FirstParameter + Description of each of the parameters. + Note: + To make it easier to keep the comments synchronized with changes to the parameters, + the preferred location for parameter documentation comments is not here, + but within the param block, directly above each parameter. + + .PARAMETER SecondParameter + Description of each of the parameters. + + .INPUTS + Description of objects that can be piped to the script. + + .OUTPUTS + Description of objects that are output by the script. + + .EXAMPLE + Example of how to run the script. + + .LINK + Links to further documentation. + + .NOTES + Detail on what the script does, if this is needed. + + #> + Param ( + [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] $ConfigFile + ) + If (Test-Path -Path $ConfigFile) { + Try { + Switch ((Get-Item -Path $ConfigFile).Extension.ToLower()) { + { @( ".yml", ".yaml").Contains($_) } { Return (Import-YAMLConfig $ConfigFile) } + { @( ".jsn", ".json").Contains($_) } { Return (Import-JSONConfig $ConfigFile) } + { @( ".csv").Contains($_) } { Return (Import-CSVConfig $ConfigFile) } + } + } + Catch { + + } + } +} Function Set-RegistryKey { Param(