Private/Update-TitleBarForUnityConnection.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<# .Description
 Set PowerShell title bar to reflect currently connected Unity servers' names
#>

function Update-TitleBarForUnityConnection {
$strOrigWindowTitle = $host.ui.RawUI.WindowTitle
## the window titlebar text without the "connected to.." Unity info
$strWinTitleWithoutOldUnityConnInfo = $strOrigWindowTitle -replace "(; )?Connected to( \d+)? Unity.+", ""
## the number of Unity servers to which still connected
$intNumConnectedUnityServers = ($Global:DefaultUnitySession | Measure-Object).Count
$strNewWindowTitle = "{0}{1}{2}" -f $strWinTitleWithoutOldUnityConnInfo, $(if ((-not [System.String]::IsNullOrEmpty($strWinTitleWithoutOldUnityConnInfo)) -and ($intNumConnectedUnityServers -gt 0)) {"; "}), $(
if ($intNumConnectedUnityServers -gt 0) {
if ($intNumConnectedUnityServers -eq 1) {"Connected to Unity {0} as {1}" -f $Global:DefaultUnitySession[0].Server, $Global:DefaultUnitySession[0].User}
else {"Connected to {0} Unity servers: {1}." -f $intNumConnectedUnityServers, (($Global:DefaultUnitySession | Foreach-Object {$_.Server}) -Join ", ")}
} ## end if
#else {"Not Connected to Unity"}
) ## end -f call
$host.ui.RawUI.WindowTitle = $strNewWindowTitle
} ## end fn