Show ETA only if it is smart status
To prevent breakage in parsing logic in build bot
Test: m
Bug: 313981966
Change-Id: Ib785bd1cf0fec92d9a4cf20ab8a33ae9590282a9
diff --git a/ui/terminal/format.go b/ui/terminal/format.go
index 241a1dd..5391023 100644
--- a/ui/terminal/format.go
+++ b/ui/terminal/format.go
@@ -25,6 +25,7 @@
type formatter struct {
format string
quiet bool
+ smart bool
start time.Time
}
@@ -32,10 +33,11 @@
// 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 (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 2ad174f..810e3c9 100644
--- a/ui/terminal/status.go
+++ b/ui/terminal/status.go
@@ -27,9 +27,10 @@
// 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)