OpenPackageManifest.psm1
|
<#
.SYNOPSIS OpenPackageManifest application-fragment authoring module (root module loader). .DESCRIPTION Dot-sources every Private then Public script and exports the Public functions. Public/Private files are auto-discovered, so adding a new cmdlet file requires no edit here. The manifest (OpenPackageManifest.psd1) controls the externally visible surface. #> Set-StrictMode -Version Latest $ErrorActionPreference = 'Stop' $privateFiles = @(Get-ChildItem -Path (Join-Path $PSScriptRoot 'Private') -Filter '*.ps1' -ErrorAction SilentlyContinue | Sort-Object FullName) $publicFiles = @(Get-ChildItem -Path (Join-Path $PSScriptRoot 'Public') -Filter '*.ps1' -ErrorAction SilentlyContinue | Sort-Object FullName) foreach ($file in @($privateFiles + $publicFiles)) { try { . $file.FullName } catch { throw "OpenPackageManifest: failed to import '$($file.FullName)': $($_.Exception.Message)" } } if ($publicFiles.Count -gt 0) { Export-ModuleMember -Function $publicFiles.BaseName } |