Modules/businessdev.ALbuild.Containers/Private/ConvertFrom-BcContainerList.ps1
|
function ConvertFrom-BcContainerList { <# .SYNOPSIS Parses 'docker ps --format {{json .}}' output into container objects. .DESCRIPTION Internal, pure helper (no I/O). Docker emits one JSON object per line; each is parsed and projected onto a stable shape (Name, Status, Image, Id, Running). #> [CmdletBinding()] [OutputType([PSCustomObject[]])] param( [Parameter(Mandatory)] [AllowEmptyString()] [AllowNull()] [string] $Output ) if ([string]::IsNullOrWhiteSpace($Output)) { return @() } $list = foreach ($line in ($Output -split "`r?`n")) { if ([string]::IsNullOrWhiteSpace($line)) { continue } try { $obj = $line | ConvertFrom-Json } catch { continue } $status = [string]$obj.Status [PSCustomObject]@{ Name = [string]$obj.Names Status = $status Image = [string]$obj.Image Id = [string]$obj.ID Running = ($status -like 'Up*') } } return @($list) } |