summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alexander Smundak <asmundak@google.com> 2021-12-12 22:26:58 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2021-12-12 22:26:58 +0000
commit789e5026b445360c059dfb91fd0f7f2e01c845c7 (patch)
tree08178de5d924d9f193b303bedca2c90767211a76
parentf4c2bf65597c771a8f09f236e41cfc46e8f49172 (diff)
parent827aead340c7e89257da6ff08bde39629de84689 (diff)
Merge "Suppress all progress messages from Ninja if ANDROID_QUIET_BUILD is set."
-rw-r--r--ui/terminal/simple_status.go27
-rw-r--r--ui/terminal/status.go6
2 files changed, 21 insertions, 12 deletions
diff --git a/ui/terminal/simple_status.go b/ui/terminal/simple_status.go
index 936b275a1..31578136c 100644
--- a/ui/terminal/simple_status.go
+++ b/ui/terminal/simple_status.go
@@ -22,32 +22,41 @@ import (
)
type simpleStatusOutput struct {
- writer io.Writer
- formatter formatter
- keepANSI bool
+ writer io.Writer
+ formatter formatter
+ keepANSI bool
+ outputLevel status.MsgLevel
}
// NewSimpleStatusOutput returns a StatusOutput that represents the
// current build status similarly to Ninja's built-in terminal
// output.
-func NewSimpleStatusOutput(w io.Writer, formatter formatter, keepANSI bool) status.StatusOutput {
+func NewSimpleStatusOutput(w io.Writer, formatter formatter, keepANSI bool, quietBuild bool) status.StatusOutput {
+ level := status.StatusLvl
+ if quietBuild {
+ level = status.PrintLvl
+ }
return &simpleStatusOutput{
- writer: w,
- formatter: formatter,
- keepANSI: keepANSI,
+ writer: w,
+ formatter: formatter,
+ keepANSI: keepANSI,
+ outputLevel: level,
}
}
func (s *simpleStatusOutput) Message(level status.MsgLevel, message string) {
- if level >= status.StatusLvl {
+ if level >= s.outputLevel {
fmt.Fprintln(s.writer, s.formatter.message(level, message))
}
}
-func (s *simpleStatusOutput) StartAction(action *status.Action, counts status.Counts) {
+func (s *simpleStatusOutput) StartAction(_ *status.Action, _ status.Counts) {
}
func (s *simpleStatusOutput) FinishAction(result status.ActionResult, counts status.Counts) {
+ if s.outputLevel > status.StatusLvl {
+ return
+ }
str := result.Description
if str == "" {
str = result.Command
diff --git a/ui/terminal/status.go b/ui/terminal/status.go
index 2ad174fee..ff0af4737 100644
--- a/ui/terminal/status.go
+++ b/ui/terminal/status.go
@@ -29,9 +29,9 @@ import (
func NewStatusOutput(w io.Writer, statusFormat string, forceSimpleOutput, quietBuild, forceKeepANSI bool) status.StatusOutput {
formatter := newFormatter(statusFormat, quietBuild)
- if !forceSimpleOutput && isSmartTerminal(w) {
- return NewSmartStatusOutput(w, formatter)
+ if forceSimpleOutput || quietBuild || !isSmartTerminal(w) {
+ return NewSimpleStatusOutput(w, formatter, forceKeepANSI, quietBuild)
} else {
- return NewSimpleStatusOutput(w, formatter, forceKeepANSI)
+ return NewSmartStatusOutput(w, formatter)
}
}