MSc365.Idp.Toolbox.psm1
#requires -Version 5.1 # Get public and private function definition files $public = @(Get-ChildItem -Path $PSScriptRoot\Public\*.ps1 -ErrorAction SilentlyContinue) $private = @(Get-ChildItem -Path $PSScriptRoot\Private\*.ps1 -ErrorAction SilentlyContinue) # Import all functions foreach ($import in @($public + $private)) { try { Write-Verbose "Importing $($import.FullName)" . $import.FullName } catch { Write-Error "Failed to import function $($import.FullName): $_" throw } } # Export only public functions Export-ModuleMember -Function $public.BaseName -Verbose:$false # Module cleanup $ExecutionContext.SessionState.Module.OnRemove = { # Cleanup when module is removed Write-Verbose 'Cleaning up module resources' } |