From adbdbc33f83d7ab65e342432beff9ef96db4095d Mon Sep 17 00:00:00 2001 From: Jeongik Cha Date: Thu, 30 Nov 2023 08:58:26 +0900 Subject: [PATCH 1/2] Remove not-used field in smart_status Bug: 292304818 Test: m nothing Change-Id: Icd05ee3af49063a01447fef9e9c3daf705f0cc4b --- ui/terminal/smart_status.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ui/terminal/smart_status.go b/ui/terminal/smart_status.go index 4575ccfdd..3880b04a8 100644 --- a/ui/terminal/smart_status.go +++ b/ui/terminal/smart_status.go @@ -31,9 +31,8 @@ import ( const tableHeightEnVar = "SOONG_UI_TABLE_HEIGHT" type actionTableEntry struct { - action *status.Action - startTime time.Time - estimatedEndTime time.Time + action *status.Action + startTime time.Time } type smartStatusOutput struct { From 0ba68e40bbbd6ab953d722885e6d3c7bcf951b30 Mon Sep 17 00:00:00 2001 From: Jeongik Cha Date: Thu, 30 Nov 2023 09:03:38 +0900 Subject: [PATCH 2/2] Show ETA only if it is smart status To prevent breakage in parsing logic in build bot Test: m Bug: 313981966 Change-Id: Ib785bd1cf0fec92d9a4cf20ab8a33ae9590282a9 --- ui/terminal/format.go | 9 ++++++--- ui/terminal/status.go | 5 +++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ui/terminal/format.go b/ui/terminal/format.go index 241a1ddf7..539102390 100644 --- a/ui/terminal/format.go +++ b/ui/terminal/format.go @@ -25,6 +25,7 @@ import ( type formatter struct { format string quiet bool + smart bool start time.Time } @@ -32,10 +33,11 @@ type formatter struct { // the terminal in a format similar to Ninja. // format takes nearly all the same options as NINJA_STATUS. // %c is currently unsupported. -func newFormatter(format string, quiet bool) formatter { +func newFormatter(format string, quiet bool, smart bool) formatter { return formatter{ format: format, quiet: quiet, + smart: smart, start: time.Now(), } } @@ -61,8 +63,9 @@ func remainingTimeString(t time.Time) string { func (s formatter) progress(counts status.Counts) string { if s.format == "" { output := fmt.Sprintf("[%3d%% %d/%d", 100*counts.FinishedActions/counts.TotalActions, counts.FinishedActions, counts.TotalActions) - - if !counts.EstimatedTime.IsZero() { + // Not to break parsing logic in the build bot + // TODO(b/313981966): make buildbot more flexible for output format + if s.smart && !counts.EstimatedTime.IsZero() { output += fmt.Sprintf(" %s remaining", remainingTimeString(counts.EstimatedTime)) } output += "] " diff --git a/ui/terminal/status.go b/ui/terminal/status.go index 2ad174fee..810e3c93d 100644 --- a/ui/terminal/status.go +++ b/ui/terminal/status.go @@ -27,9 +27,10 @@ import ( // statusFormat takes nearly all the same options as NINJA_STATUS. // %c is currently unsupported. func NewStatusOutput(w io.Writer, statusFormat string, forceSimpleOutput, quietBuild, forceKeepANSI bool) status.StatusOutput { - formatter := newFormatter(statusFormat, quietBuild) + useSmartStatus := !forceSimpleOutput && isSmartTerminal(w) + formatter := newFormatter(statusFormat, quietBuild, useSmartStatus) - if !forceSimpleOutput && isSmartTerminal(w) { + if useSmartStatus { return NewSmartStatusOutput(w, formatter) } else { return NewSimpleStatusOutput(w, formatter, forceKeepANSI)