Parmis.Common.psm1
# Load Module settings file try { $script:SETTINGS = (Get-Content (Join-Path $PSScriptRoot 'Settings.json') | ConvertFrom-Json) } catch { throw 'Could not load settings.json file.' } # Get public and private function defenition files as well as libraries. $Libs = @(Get-ChildItem -Path $PSScriptRoot\lib -Recurse -Filter "*.dll") | Sort-Object Name $Public = @(Get-ChildItem -Path $PSScriptRoot\Public -Recurse -Filter "*.ps1") | Sort-Object Name $Private = @(Get-ChildItem -Path $PSScriptRoot\Private -Recurse -Filter "*.ps1") | Sort-Object Name # Add-Type for dll files foreach ($import in $Libs) { try { Import-Module $import.fullName Add-Type -Path $import.fullName Write-Verbose -Message ("Imported library {0}" -f $import.fullName) } catch { Write-Error -Message ("Failed to import library {0}: {1}" -f $import.fullName, $_) } } # Dots source the private files foreach ($import in $Private) { try { . $import.fullName Write-Verbose -Message ("Imported public function {0}" -f $import.fullName) } catch { Write-Error -Message ("Failed to import public function {0}: {1}" -f $import.fullName, $_) } } # Dots source the public files foreach ($import in $Public) { try { . $import.fullName Write-Verbose -Message ("Imported public function {0}" -f $import.fullName) } catch { Write-Error -Message ("Failed to import public function {0}: {1}" -f $import.fullName, $_) } } |