diff options
author | Dan Willemsen <dwillemsen@google.com> | 2018-07-19 22:57:18 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@google.com> | 2018-07-19 22:57:18 -0700 |
commit | 34218ece5617eb781398d3b8fff25c22ba45c053 (patch) | |
tree | 3cc98cc69c96f5ff2156b9b60d3a9515f3b027c0 /cmd/multiproduct_kati | |
parent | 23be383843c4cfaeb863e6725752c953c74f035b (diff) | |
download | soong-34218ece5617eb781398d3b8fff25c22ba45c053.tar.gz |
Make multiproduct_kati return error
Test: insert error, run build/soong/build_test.sh and check $?
Change-Id: I3462defd1ff04247a8b729e22988cbe002b0ce69
Diffstat (limited to 'cmd/multiproduct_kati')
-rw-r--r-- | cmd/multiproduct_kati/main.go | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/cmd/multiproduct_kati/main.go b/cmd/multiproduct_kati/main.go index 237d384cc..9fb400f96 100644 --- a/cmd/multiproduct_kati/main.go +++ b/cmd/multiproduct_kati/main.go @@ -135,7 +135,7 @@ func main() { writer := terminal.NewWriter(terminal.StdioImpl{}) defer writer.Finish() - log := logger.New(os.Stderr) + log := logger.New(writer) defer log.Cleanup() flag.Parse() @@ -150,6 +150,9 @@ func main() { defer stat.Finish() stat.AddOutput(terminal.NewStatusOutput(writer, "")) + var failures failureCount + stat.AddOutput(&failures) + build.SetupSignals(log, cancel, func() { trace.Close() log.Cleanup() @@ -386,4 +389,30 @@ func main() { } s.Finish() + + if failures == 1 { + log.Fatal("1 failure") + } else if failures > 1 { + log.Fatalf("%d failures", failures) + } else { + writer.Print("Success") + } } + +type failureCount int + +func (f *failureCount) StartAction(action *status.Action, counts status.Counts) {} + +func (f *failureCount) FinishAction(result status.ActionResult, counts status.Counts) { + if result.Error != nil { + *f += 1 + } +} + +func (f *failureCount) Message(level status.MsgLevel, message string) { + if level >= status.ErrorLvl { + *f += 1 + } +} + +func (f *failureCount) Flush() {} |