Public/Import-LocalModules.ps1

function Import-LocalModules {
    [cmdletbinding()]
    param (
    [Parameter(Position=1)]
    [array]$Include=@()
    )

    $ThisDir = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
    $Modules = @(Get-ChildItem -Path $ThisDir -Recurse "*.psm1" | ForEach-Object { $_.FullName })
    $Modules += $Include

    foreach ($module in $Modules) {
    try {
        Import-Module $module -DisableNameChecking -Force
        Write-Output "Successfully imported $module."
    } catch {
        Write-Warning "Failed to import $module."
        throw $_.Exception.Message
    }
    }
}