Private/Find-BundleFromExecutable.ps1

function Find-BundleFromExecutable {
    param([string]$ExecutablePath)

    if ([string]::IsNullOrWhiteSpace($ExecutablePath)) {
        return ""
    }

    $current = Split-Path -Parent $ExecutablePath

    while (-not [string]::IsNullOrWhiteSpace($current) -and $current -ne "/") {
        if ($current -like "*.app*" -and (Test-Path -LiteralPath (Join-Path $current "Contents/Info.plist"))) {
            return $current
        }

        $parent = Split-Path -Parent $current

        if ($parent -eq $current) {
            break
        }

        $current = $parent
    }

    return ""
}