Trackyon.GoDaddy.psm1
# Dot sources all the files in Public and Private # Then reads the file names in Public and exports them # as the fucntions for the module. # To export an alias you have to manually add it to the # Export-ModuleMember below. # The module manifest still needs to be updated for best # performance it does not use wildcard exports. # The order that the classes files are loaded is important. Instead # of an awkward naming convention I added a file that has the load # order in it. $classOrder = Get-Content "$PSScriptRoot\classes\classes.json" -Raw | ConvertFrom-Json ForEach ($classFile in $classOrder) { Write-Verbose -Message "Importing from $classFile" . "$PSScriptRoot\classes\$classFile" } $functionFolders = @('public', 'private') ForEach ($folder in $functionFolders) { $folderPath = Join-Path -Path $PSScriptRoot -ChildPath $folder If (Test-Path -Path $folderPath) { Write-Verbose -Message "Importing from $folder" $functions = Get-ChildItem -Path $folderPath -Filter '*.ps1' ForEach ($function in $functions) { Write-Verbose -Message " Importing $($function.BaseName)" . $($function.FullName) } } } $publicFunctions = (Get-ChildItem -Path "$PSScriptRoot\public" -Filter '*.ps1').BaseName Export-ModuleMember -Function $publicFunctions |