Public/Import-DPLibrary.ps1
|
function Import-DPLibrary { <# .SYNOPSIS Import DLLPickle libraries based on Packages.json configuration. .DESCRIPTION Import all DLLs (libraries) that are tracked and marked for auto-import in the Packages.json file. .EXAMPLE Import-DPLibrary Imports all DLLPickle libraries marked for auto-import. Import-DPLibrary -ImportAll Imports all DLLPickle libraries, ignoring auto-import settings. #> [CmdletBinding()] param ( # Ignore preset 'autoImport' values and attempt to import all packages. [Parameter()] [switch] $ImportAll ) $ModuleDirectory = if ($PSModuleRoot) { $PSModuleRoot } elseif ($PSScriptRoot) { Split-Path -Path $PSScriptRoot -Parent } else { $PWD } $AssemblyDirectory = Join-Path -Path $ModuleDirectory -ChildPath 'Assembly' $Packages = Get-Content -Path (Join-Path -Path $AssemblyDirectory -ChildPath 'Packages.json') | ConvertFrom-Json | Select-Object -ExpandProperty packages foreach ( $Package in $Packages) { $FilePath = Join-Path -Path $AssemblyDirectory -ChildPath "$($Package.name).dll" if ( $Package.autoImport -eq $true -or $PSBoundParameters.ContainsKey('ImportAll') ) { Add-Type -Path $FilePath } else { Write-Verbose "Skipping auto-import for $FilePath." } } } |