aboutsummaryrefslogtreecommitdiff
path: root/cmd/multiproduct_kati
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2018-07-19 22:57:18 -0700
committerDan Willemsen <dwillemsen@google.com>2018-07-19 22:57:18 -0700
commit34218ece5617eb781398d3b8fff25c22ba45c053 (patch)
tree3cc98cc69c96f5ff2156b9b60d3a9515f3b027c0 /cmd/multiproduct_kati
parent23be383843c4cfaeb863e6725752c953c74f035b (diff)
downloadsoong-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.go31
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() {}