list/tree: Hide `Used` column if no truthy value

Don't show the `Used` column in the image tree view when no image is
actually used and the column would be empty.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
This commit is contained in:
Paweł Gronowski 2024-08-19 12:11:52 +02:00
parent 0be9e2faaa
commit 54a4ab135f
No known key found for this signature in database
GPG Key ID: B85EFCFE26DEF92A
1 changed files with 13 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package image
import (
"context"
"fmt"
"slices"
"sort"
"strings"
"unicode/utf8"
@ -25,6 +26,9 @@ type treeOptions struct {
type treeView struct {
images []topImage
// showUsed indicates whether the "Used" column should be shown.
showUsed bool
// imageSpacing indicates whether there should be extra spacing between images.
imageSpacing bool
}
@ -71,6 +75,9 @@ func runTree(ctx context.Context, dockerCLI command.Cli, opts treeOptions) error
if sub.Details.Used {
// Mark top-level parent image as used if any of its subimages are used.
details.Used = true
// Show the Used column only if there will be at least one non-zero value.
view.showUsed = true
}
totalContent += im.Size.Content
@ -192,6 +199,12 @@ func printImageTree(dockerCLI command.Cli, view treeView) error {
},
}
if !view.showUsed {
columns = slices.DeleteFunc(columns, func(c imgColumn) bool {
return c.Title == "Used"
})
}
nameWidth := int(width)
for idx, h := range columns {
if h.Width == 0 {