diff options
author | 2023-11-30 09:03:38 +0900 | |
---|---|---|
committer | 2023-11-30 00:06:26 +0000 | |
commit | 0ba68e40bbbd6ab953d722885e6d3c7bcf951b30 (patch) | |
tree | 7c81c20d39e039c70318a7f480ae20315b0a28a9 /ui/terminal | |
parent | adbdbc33f83d7ab65e342432beff9ef96db4095d (diff) |
Show ETA only if it is smart status
To prevent breakage in parsing logic in build bot
Test: m
Bug: 313981966
Change-Id: Ib785bd1cf0fec92d9a4cf20ab8a33ae9590282a9
Diffstat (limited to 'ui/terminal')
-rw-r--r-- | ui/terminal/format.go | 9 | ||||
-rw-r--r-- | 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) |