summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ui/status/log.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/ui/status/log.go b/ui/status/log.go
index d40724809..1ded9ca46 100644
--- a/ui/status/log.go
+++ b/ui/status/log.go
@@ -20,6 +20,7 @@ import (
"fmt"
"io"
"io/ioutil"
+ "os"
"strings"
"github.com/golang/protobuf/proto"
@@ -154,6 +155,7 @@ type errorProtoLog struct {
}
func NewProtoErrorLog(log logger.Logger, filename string) StatusOutput {
+ os.Remove(filename)
return &errorProtoLog{
errorProto: soong_build_error_proto.BuildError{},
filename: filename,
@@ -178,11 +180,17 @@ func (e *errorProtoLog) FinishAction(result ActionResult, counts Counts) {
}
func (e *errorProtoLog) Flush() {
+ // Don't create the build error proto file if there is action errors.
+ if len(e.errorProto.ActionErrors) == 0 {
+ return
+ }
+
data, err := proto.Marshal(&e.errorProto)
if err != nil {
e.log.Printf("Failed to marshal build status proto: %v\n", err)
return
}
+
err = ioutil.WriteFile(e.filename, []byte(data), 0644)
if err != nil {
e.log.Printf("Failed to write file %s: %v\n", e.filename, err)