Search-GPO.psm1

# Get public and private function definition files
$Public = @( Get-ChildItem -Path (Join-Path $PSScriptRoot 'Public') -Filter '*.ps1' -File -ErrorAction SilentlyContinue )
$Private = @( Get-ChildItem -Path (Join-Path $PSScriptRoot 'Private') -Filter '*.ps1' -File -ErrorAction SilentlyContinue )

# Dot source the files
foreach ($import in @($Public + $Private)) {
    try {
        . $import.fullname
    }
    catch {
        # Write-Error is discarded during module initialization, which would make a
        # broken file silently import as an empty module. Throw so the import fails loudly.
        throw "Failed to import function file $($import.FullName): $_"
    }
}

Export-ModuleMember -Function $Public.BaseName