summaryrefslogtreecommitdiff
path: root/ui/terminal
diff options
context:
space:
mode:
author Jeongik Cha <jeongik@google.com> 2023-11-30 09:03:38 +0900
committer Jeongik Cha <jeongik@google.com> 2023-11-30 00:06:26 +0000
commit0ba68e40bbbd6ab953d722885e6d3c7bcf951b30 (patch)
tree7c81c20d39e039c70318a7f480ae20315b0a28a9 /ui/terminal
parentadbdbc33f83d7ab65e342432beff9ef96db4095d (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.go9
-rw-r--r--ui/terminal/status.go5
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)