Orbit.Authentication.psm1
# using module .\Class\Orbit.Authentication.Classes.psm1 # Above needs to remain the first line to import Classes # remove the comment when using classes #requires -Version 5 #Requires -Modules @{ ModuleName="Microsoft.Graph.Authentication"; ModuleVersion="1.9.6" } Import-Module Microsoft.Graph.Authentication #Get public and private function definition files. $Public = @( Get-ChildItem -Path $PSScriptRoot\Public\*.ps1 -Recurse -ErrorAction SilentlyContinue ) $Private = @( Get-ChildItem -Path $PSScriptRoot\Private\*.ps1 -Recurse -ErrorAction SilentlyContinue ) #Get parent private function definition files for dot-sourcing $ModuleRoot = $PSScriptRoot | Split-Path $RootModulePrivate = @( Get-ChildItem -Path $ModuleRoot\Orbit\Private\*.ps1 -Recurse -ErrorAction SilentlyContinue ) #region Functions #Dot source the files Foreach ($Function in @($Public + $Private + $RootModulePrivate)) { Try { . $Function.Fullname } Catch { Write-Error -Message "Failed to import function $($Function.Fullname): $_" } } # Exporting Module Members (Functions) Export-ModuleMember -Function $Public.Basename #endregion #region Aliases # Query Aliases $Aliases = $null #$Aliases = Foreach ($Function in @($Public + $Private)) { $Aliases = Foreach ($Function in @($Public)) { if ( $($Function.Fullname) -match '.tests.ps1' ) { continue } $Content = $AliasBlocks = $null $Content = $Function | Get-Content $AliasBlocks = $Content -split "`n" | Select-String 'Alias\(' -Context 1, 1 $AliasBlocks | ForEach-Object { $Lines = $($_ -split "`n") if ( $Lines[0] -match 'CmdletBinding' -or $Lines[0] -match 'OutputType' -or $Lines[2] -match 'CmdletBinding' -or $Lines[2] -match 'OutputType' ) { if ( $($_ -split "`n")[1] -match "Alias\('(?<content>.*)'\)" ) { $($matches.content -split ',' -replace "'" -replace ' ') | ForEach-Object { if ( $_ -ne '' ) { $_ } } } } else { continue } } } # Manual definitions $ManualAliases = @() # Exporting Module Members (Aliases) $AliasesToExport = @($Aliases + $ManualAliases) Write-Verbose -Message "Aliases to Export - Count: $($Aliases.Count)" Write-Verbose -Message "Aliases to Export - List: $($Aliases -join ',')" if ( $AliasesToExport ) { Export-ModuleMember -Alias $AliasesToExport } #endregion #region Variables #endregion #region Custom Module Functions #endregion |