Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f78a7344 authored by Dan Willemsen's avatar Dan Willemsen
Browse files

Move all status output to stdout

I've noticed a few instances of interleaved status messages in between
lines in a terminal/Writer.Print call on our build servers. Since
there's a lock protecting everything we write, I've got to assume this
is a stdout vs stderr problem. Ninja had always been outputing to
stdout, except for error messages, which are now marked with FAILED:
like failed actions.

Test: m blueprint_tools
Test: m missing
Change-Id: Idf8320d40694abf212c902c63a9703e4440ffb7a
parent 9611199b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -45,7 +45,9 @@ func NewStatusOutput(w Writer, statusFormat string) status.StatusOutput {
}

func (s *statusOutput) Message(level status.MsgLevel, message string) {
	if level > status.StatusLvl {
	if level >= status.ErrorLvl {
		s.writer.Print(fmt.Sprintf("FAILED: %s", message))
	} else if level > status.StatusLvl {
		s.writer.Print(fmt.Sprintf("%s%s", level.Prefix(), message))
	} else if level == status.StatusLvl {
		s.writer.StatusLine(message)
+4 −4
Original line number Diff line number Diff line
@@ -81,8 +81,8 @@ func NewWriter(stdio StdioInterface) Writer {
	}

	if term, ok := os.LookupEnv("TERM"); ok && term != "dumb" {
		w.stripEscapes = !isTerminal(stdio.Stderr())
		w.smartTerminal = isTerminal(stdio.Stdout()) && !w.stripEscapes
		w.smartTerminal = isTerminal(stdio.Stdout())
		w.stripEscapes = !w.smartTerminal
	}

	return w
@@ -127,9 +127,9 @@ func (w *writerImpl) print(str string) {
		fmt.Fprint(w.stdio.Stdout(), "\r", "\x1b[K")
		w.haveBlankLine = true
	}
	fmt.Fprint(w.stdio.Stderr(), str)
	fmt.Fprint(w.stdio.Stdout(), str)
	if len(str) == 0 || str[len(str)-1] != '\n' {
		fmt.Fprint(w.stdio.Stderr(), "\n")
		fmt.Fprint(w.stdio.Stdout(), "\n")
	}
}