diff --git a/PSSailpoint/Build.ps1 b/PSSailpoint/Build.ps1 index 725633d45..d37a477b4 100644 --- a/PSSailpoint/Build.ps1 +++ b/PSSailpoint/Build.ps1 @@ -63,13 +63,13 @@ $Manifest = @{ PowerShellVersion = '6.2' FunctionsToExport = $FunctionPath | Get-ChildItem -Filter *.ps1 | Get-FunctionsToExport - - RequiredModules = @( - @{ModuleName = 'PSSailpoint.Beta'; RequiredVersion = '1.7.0'; }, - @{ModuleName = 'PSSailpoint.V3'; RequiredVersion = '1.7.0'; }, - @{ModuleName = 'PSSailpoint.V2024'; RequiredVersion = '1.7.0'; }, - @{ModuleName = 'PSSailpoint.V2025'; RequiredVersion = '1.7.0'; }, - @{ModuleName = 'PSSailpoint.V2026'; RequiredVersion = '1.7.0'; } + + NestedModules = @( + '.\beta\src\PSSailpoint.Beta\PSSailpoint.Beta.psd1', + '.\v3\src\PSSailpoint.V3\PSSailpoint.V3.psd1', + '.\v2024\src\PSSailpoint.V2024\PSSailpoint.V2024.psd1', + '.\v2025\src\PSSailpoint.V2025\PSSailpoint.V2025.psd1', + '.\v2026\src\PSSailpoint.V2026\PSSailpoint.V2026.psd1' ) VariablesToExport = @() diff --git a/PSSailpoint/PSSailpoint.psm1 b/PSSailpoint/PSSailpoint.psm1 index 6617d8ae3..cce22cece 100644 --- a/PSSailpoint/PSSailpoint.psm1 +++ b/PSSailpoint/PSSailpoint.psm1 @@ -27,4 +27,42 @@ $Script:CmdletBindingParameters = @('Verbose', 'Debug', 'ErrorAction', 'WarningA . $PSScriptRoot\Configuration.ps1 . $PSScriptRoot\Pagination.ps1 -#endregion \ No newline at end of file +# Import nested version modules +$NestedModules = @( + "$PSScriptRoot\beta\src\PSSailpoint.Beta\PSSailpoint.Beta.psd1", + "$PSScriptRoot\v3\src\PSSailpoint.V3\PSSailpoint.V3.psd1", + "$PSScriptRoot\v2024\src\PSSailpoint.V2024\PSSailpoint.V2024.psd1", + "$PSScriptRoot\v2025\src\PSSailpoint.V2025\PSSailpoint.V2025.psd1", + "$PSScriptRoot\v2026\src\PSSailpoint.V2026\PSSailpoint.V2026.psd1" +) + +foreach ($ModulePath in $NestedModules) { + if (Test-Path $ModulePath) { + try { + Import-Module $ModulePath -Force -Global -ErrorAction Stop + Write-Verbose "Successfully imported: $ModulePath" + } + catch { + Write-Warning "Failed to import $ModulePath : $_" + } + } + else { + Write-Verbose "Module not found: $ModulePath" + } +} + +# Import any additional function files from root +$FunctionFiles = Get-ChildItem -Path $PSScriptRoot\*.ps1 -ErrorAction SilentlyContinue | + Where-Object { $_.DirectoryName -eq $PSScriptRoot } + +foreach ($File in $FunctionFiles) { + try { + . $File.FullName + Write-Verbose "Dot-sourced: $($File.Name)" + } + catch { + Write-Error "Failed to import $($File.Name): $_" + } +} + +#endregion