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)