aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2016-06-27 11:25:40 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-06-27 11:41:33 +0000
commit99843a88ab52f5b82e3fd934cefb7bbae58c1f04 (patch)
tree578d46525d48d89c40f7e53d56d4f43319341c69 /src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
parent38ebf2adf552bc32489d5a1053797c50fe5be25f (diff)
experimental UI: Avoid empty lines
...to save a bit of horizontal space in the scroll-back buffer. The color-coding already gives enough navigation hints. -- Change-Id: Id0e5decc6bd495a99ec839c096700406d8d1bab9 Reviewed-on: https://bazel-review.googlesource.com/#/c/3902 MOS_MIGRATED_REVID=125943242
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java39
1 files changed, 29 insertions, 10 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java b/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
index 8c5062a7b3..ac4068064d 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
@@ -104,17 +104,29 @@ public class ExperimentalEventHandler extends BlazeCommandEventHandler {
ignoreRefreshLimitOnce();
}
- private synchronized void flushStdOutStdErrBuffers() {
+ /**
+ * Flush buffers for stdout and stderr. Return if either of them flushed a non-zero number of
+ * symbols.
+ */
+ private synchronized boolean flushStdOutStdErrBuffers() {
+ boolean didFlush = false;
try {
- outErr.getOutputStream().write(stdoutBuffer);
- outErr.getOutputStream().flush();
- stdoutBuffer = new byte[] {};
- outErr.getErrorStream().write(stderrBuffer);
- outErr.getErrorStream().flush();
- stderrBuffer = new byte[] {};
+ if (stdoutBuffer.length > 0) {
+ outErr.getOutputStream().write(stdoutBuffer);
+ outErr.getOutputStream().flush();
+ stdoutBuffer = new byte[] {};
+ didFlush = true;
+ }
+ if (stderrBuffer.length > 0) {
+ outErr.getErrorStream().write(stderrBuffer);
+ outErr.getErrorStream().flush();
+ stderrBuffer = new byte[] {};
+ didFlush = true;
+ }
} catch (IOException e) {
LOG.warning("IO Error writing to output stream: " + e);
}
+ return didFlush;
}
@Override
@@ -172,21 +184,28 @@ public class ExperimentalEventHandler extends BlazeCommandEventHandler {
case WARNING:
case INFO:
case SUBCOMMAND:
+ boolean incompleteLine;
if (showProgress && !buildComplete) {
clearProgressBar();
}
- flushStdOutStdErrBuffers();
- crlf();
+ incompleteLine = flushStdOutStdErrBuffers();
+ if (incompleteLine) {
+ crlf();
+ }
setEventKindColor(event.getKind());
terminal.writeString(event.getKind() + ": ");
terminal.resetTerminal();
+ incompleteLine = true;
if (event.getLocation() != null) {
terminal.writeString(event.getLocation() + ": ");
}
if (event.getMessage() != null) {
terminal.writeString(event.getMessage());
+ incompleteLine = !event.getMessage().endsWith("\n");
+ }
+ if (incompleteLine) {
+ crlf();
}
- crlf();
if (showProgress && !buildComplete) {
addProgressBar();
}