progressui: fix possible out of order indexing on plain mode
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>master
parent
578f045d5c
commit
379ac1b1f7
|
@ -119,7 +119,6 @@ type trace struct {
|
||||||
localTimeDiff time.Duration
|
localTimeDiff time.Duration
|
||||||
vertexes []*vertex
|
vertexes []*vertex
|
||||||
byDigest map[digest.Digest]*vertex
|
byDigest map[digest.Digest]*vertex
|
||||||
nextIndex int
|
|
||||||
updates map[digest.Digest]struct{}
|
updates map[digest.Digest]struct{}
|
||||||
modeConsole bool
|
modeConsole bool
|
||||||
groups map[string]*vertexGroup // group id -> group
|
groups map[string]*vertexGroup // group id -> group
|
||||||
|
@ -410,7 +409,6 @@ func (t *trace) update(s *client.SolveStatus, termWidth int) {
|
||||||
if v.ProgressGroup != nil {
|
if v.ProgressGroup != nil {
|
||||||
group, ok := t.groups[v.ProgressGroup.Id]
|
group, ok := t.groups[v.ProgressGroup.Id]
|
||||||
if !ok {
|
if !ok {
|
||||||
t.nextIndex++
|
|
||||||
group = &vertexGroup{
|
group = &vertexGroup{
|
||||||
vertex: &vertex{
|
vertex: &vertex{
|
||||||
Vertex: &client.Vertex{
|
Vertex: &client.Vertex{
|
||||||
|
@ -419,7 +417,6 @@ func (t *trace) update(s *client.SolveStatus, termWidth int) {
|
||||||
},
|
},
|
||||||
byID: make(map[string]*status),
|
byID: make(map[string]*status),
|
||||||
statusUpdates: make(map[string]struct{}),
|
statusUpdates: make(map[string]struct{}),
|
||||||
index: t.nextIndex,
|
|
||||||
intervals: make(map[int64]interval),
|
intervals: make(map[int64]interval),
|
||||||
hidden: true,
|
hidden: true,
|
||||||
},
|
},
|
||||||
|
@ -441,11 +438,9 @@ func (t *trace) update(s *client.SolveStatus, termWidth int) {
|
||||||
}
|
}
|
||||||
prev, ok := t.byDigest[v.Digest]
|
prev, ok := t.byDigest[v.Digest]
|
||||||
if !ok {
|
if !ok {
|
||||||
t.nextIndex++
|
|
||||||
t.byDigest[v.Digest] = &vertex{
|
t.byDigest[v.Digest] = &vertex{
|
||||||
byID: make(map[string]*status),
|
byID: make(map[string]*status),
|
||||||
statusUpdates: make(map[string]struct{}),
|
statusUpdates: make(map[string]struct{}),
|
||||||
index: t.nextIndex,
|
|
||||||
intervals: make(map[int64]interval),
|
intervals: make(map[int64]interval),
|
||||||
}
|
}
|
||||||
if t.modeConsole {
|
if t.modeConsole {
|
||||||
|
|
|
@ -27,10 +27,11 @@ type lastStatus struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type textMux struct {
|
type textMux struct {
|
||||||
w io.Writer
|
w io.Writer
|
||||||
current digest.Digest
|
current digest.Digest
|
||||||
last map[string]lastStatus
|
last map[string]lastStatus
|
||||||
notFirst bool
|
notFirst bool
|
||||||
|
nextIndex int
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *textMux) printVtx(t *trace, dgst digest.Digest) {
|
func (p *textMux) printVtx(t *trace, dgst digest.Digest) {
|
||||||
|
@ -43,6 +44,11 @@ func (p *textMux) printVtx(t *trace, dgst digest.Digest) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if v.index == 0 {
|
||||||
|
p.nextIndex++
|
||||||
|
v.index = p.nextIndex
|
||||||
|
}
|
||||||
|
|
||||||
if dgst != p.current {
|
if dgst != p.current {
|
||||||
if p.current != "" {
|
if p.current != "" {
|
||||||
old := t.byDigest[p.current]
|
old := t.byDigest[p.current]
|
||||||
|
|
Loading…
Reference in New Issue