Private/Resolve-DependScripts.ps1

# Borrowed from Pester and stripped down
# This might be overkill
function Resolve-DependScripts {
    param ([object[]] $Path, [bool]$Recurse = $True)
    $resolvedScriptInfo = @(
        foreach ($object in $Path) {
            $unresolvedPath = [string] $object
            if ($unresolvedPath -notmatch '[\*\?\[\]]' -and
                (Test-Path -LiteralPath $unresolvedPath -PathType Leaf) -and
                (Get-Item -LiteralPath $unresolvedPath -Force) -is [System.IO.FileInfo]) {
                $extension = [System.IO.Path]::GetExtension($unresolvedPath)
                if ($extension -ne '.psd1') {
                    Write-Error "Script path '$unresolvedPath' is not a psd1 file."
                }
                else {
                    $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($unresolvedPath)
                }
            }
            else {
                $RecurseParam = @{Recurse = $False }
                if ($Recurse) {
                    $RecurseParam.Recurse = $True
                }
                Resolve-Path -Path $unresolvedPath |
                    Where-Object { $_.Provider.Name -eq 'FileSystem' } |
                    Select-Object -ExpandProperty ProviderPath |
                    Get-ChildItem -Force -Filter *.psd1 @RecurseParam |
                    Where-Object { -not $_.PSIsContainer -and $_.Name -match '\.depend\.psd1$|.*requirements.psd1$' } |
                    Select-Object -ExpandProperty FullName -Unique
            }
        }
    )
    $resolvedScriptInfo | Select-Object -Unique
}