Public/Get-DClaudeImage.ps1
|
<# .SYNOPSIS Lists Docker images registered in the dclaude user configuration. .DESCRIPTION Returns image entries from ~/.dclaude/settings.json (merged with settings.local.json). Each entry is expanded to one row per platform, showing the image name, platform, tag, and volumes. .PARAMETER Name Filter by image name. If omitted, all images are returned. .EXAMPLE Get-DClaudeImage Lists all registered images across all platforms. .EXAMPLE Get-DClaudeImage -Name 'pwsh' Shows platform entries for the 'pwsh' image only. #> function Get-DClaudeImage { [CmdletBinding()] param( [Parameter()] [string]$Name ) $config = Get-DClaudeUserConfig if (-not $config -or -not $config.PSObject.Properties['images'] -or -not $config.images) { return } $imageNames = if ($Name) { if (-not $config.images.PSObject.Properties[$Name]) { return } @($Name) } else { @($config.images.PSObject.Properties | ForEach-Object { $_.Name }) } foreach ($imageName in $imageNames) { $imageEntry = $config.images.$imageName foreach ($platformProp in $imageEntry.PSObject.Properties) { $platformName = $platformProp.Name $platformValue = $platformProp.Value [PSCustomObject]@{ Name = $imageName Platform = $platformName Tag = $platformValue.tag Volumes = if ($platformValue.volumes) { @($platformValue.volumes) } else { @() } } } } } |