Skip to content

Commit

Permalink
Merge pull request docker#2717 from crazy-max/fix-ls-notrunc
Browse files Browse the repository at this point in the history
ls: ensure deterministic output for truncated platforms
  • Loading branch information
tonistiigi authored Oct 4, 2024
2 parents 4507a49 + f6a27a6 commit d353f5f
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions commands/ls.go
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,12 @@ func (tp truncatedPlatforms) String() string {
var out []string
var count int

var keys []string
for k := range tp.res {
keys = append(keys, k)
}
sort.Strings(keys)

seen := make(map[string]struct{})
for _, mpf := range truncMajorPlatforms {
if tpf, ok := tp.res[mpf]; ok {
Expand All @@ -333,19 +339,19 @@ func (tp truncatedPlatforms) String() string {
}
}

for mpf, pf := range tp.res {
for _, mpf := range keys {
if len(out) >= tp.max {
break
}
if _, ok := seen[mpf]; ok {
continue
}
if len(pf) == 1 {
out = append(out, fmt.Sprintf("%s", pf[0]))
if len(tp.res[mpf]) == 1 {
out = append(out, fmt.Sprintf("%s", tp.res[mpf][0]))
count++
} else {
hasPreferredPlatform := false
for _, pf := range pf {
for _, pf := range tp.res[mpf] {
if strings.HasSuffix(pf, "*") {
hasPreferredPlatform = true
break
Expand All @@ -355,8 +361,8 @@ func (tp truncatedPlatforms) String() string {
if hasPreferredPlatform {
mainpf += "*"
}
out = append(out, fmt.Sprintf("%s (+%d)", mainpf, len(pf)))
count += len(pf)
out = append(out, fmt.Sprintf("%s (+%d)", mainpf, len(tp.res[mpf])))
count += len(tp.res[mpf])
}
}

Expand Down

0 comments on commit d353f5f

Please sign in to comment.