|
@@ -73,6 +73,10 @@ func (w *ttyWriter) Stop() {
|
|
|
func (w *ttyWriter) Event(e Event) {
|
|
|
w.mtx.Lock()
|
|
|
defer w.mtx.Unlock()
|
|
|
+ w.event(e)
|
|
|
+}
|
|
|
+
|
|
|
+func (w *ttyWriter) event(e Event) {
|
|
|
if !utils.StringContains(w.eventIDs, e.ID) {
|
|
|
w.eventIDs = append(w.eventIDs, e.ID)
|
|
|
}
|
|
@@ -80,9 +84,14 @@ func (w *ttyWriter) Event(e Event) {
|
|
|
last := w.events[e.ID]
|
|
|
switch e.Status {
|
|
|
case Done, Error, Warning:
|
|
|
- if last.Status != e.Status {
|
|
|
+ if last.endTime.IsZero() {
|
|
|
last.stop()
|
|
|
}
|
|
|
+ case Working:
|
|
|
+ if !last.endTime.IsZero() {
|
|
|
+ // already done, don't overwrite
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
last.Status = e.Status
|
|
|
last.Text = e.Text
|
|
@@ -106,8 +115,10 @@ func (w *ttyWriter) Event(e Event) {
|
|
|
}
|
|
|
|
|
|
func (w *ttyWriter) Events(events []Event) {
|
|
|
+ w.mtx.Lock()
|
|
|
+ defer w.mtx.Unlock()
|
|
|
for _, e := range events {
|
|
|
- w.Event(e)
|
|
|
+ w.event(e)
|
|
|
}
|
|
|
}
|
|
|
|