aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2016-10-07 11:31:52 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-10-07 13:50:50 +0000
commit0436ce0b1b21e8d44851008bd939a8a45e3aa985 (patch)
tree9fe9492474ebfb12e0bf41ed2818013d116f69e7 /src
parenta71d2ff346242ede2ca578a497cfc178f8e52f33 (diff)
Register the BuildEventStreamer
...so that it gets informed about all relevant events happening during the build. For the time being, we only consider one transport, that to a text file. -- Change-Id: I429c957f39a07b795a71acbeaa1360178574a1d1 Reviewed-on: https://bazel-review.googlesource.com/#/c/6276 MOS_MIGRATED_REVID=135464059
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/BUILD1
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandEventHandler.java15
3 files changed, 26 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index 5bfa87b00f..33d1601a9c 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -1001,6 +1001,7 @@ java_library(
"//src/main/java/com/google/devtools/build/docgen:docgen_javalib",
"//src/main/java/com/google/devtools/build/lib/actions",
"//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
+ "//src/main/java/com/google/devtools/build/lib/buildeventstream/transports",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/query2",
"//src/main/java/com/google/devtools/build/lib/query2:query-engine",
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java
index 2cb98293d2..7d7f300bd9 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java
@@ -27,6 +27,8 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.ListMultimap;
import com.google.common.io.Flushables;
+import com.google.devtools.build.lib.buildeventstream.BuildEventTransport;
+import com.google.devtools.build.lib.buildeventstream.transports.TextFormatFileTransport;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.events.Reporter;
@@ -452,6 +454,18 @@ public class BlazeCommandDispatcher {
Reporter reporter = env.getReporter();
reporter.addHandler(handler);
env.getEventBus().register(handler);
+ if (eventHandlerOptions.buildEventTextFile.length() > 0) {
+ try {
+ BuildEventStreamer streamer =
+ new BuildEventStreamer(
+ ImmutableSet.<BuildEventTransport>of(
+ new TextFormatFileTransport(eventHandlerOptions.buildEventTextFile)));
+ reporter.addHandler(streamer);
+ env.getEventBus().register(streamer);
+ } catch (IOException e) {
+ return ExitCode.LOCAL_ENVIRONMENTAL_ERROR.getNumericExitCode();
+ }
+ }
// We register an ANSI-allowing handler associated with {@code handler} so that ANSI control
// codes can be re-introduced later even if blaze is invoked with --color=no. This is useful
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandEventHandler.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandEventHandler.java
index 60e8741b28..7ab613fc3f 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandEventHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandEventHandler.java
@@ -21,10 +21,6 @@ import com.google.devtools.build.lib.util.io.OutErr;
import com.google.devtools.common.options.EnumConverter;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionsBase;
-
-import org.joda.time.format.DateTimeFormat;
-import org.joda.time.format.DateTimeFormatter;
-
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
@@ -32,6 +28,8 @@ import java.util.EnumSet;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
+import org.joda.time.format.DateTimeFormat;
+import org.joda.time.format.DateTimeFormatter;
/**
* BlazeCommandEventHandler: an event handler established for the duration of a
@@ -170,6 +168,15 @@ public class BlazeCommandEventHandler implements EventHandler {
)
public int experimentalUiActionsShown;
+
+ @Option(
+ name = "experimental_build_event_text_file",
+ defaultValue = "",
+ category = "hidden",
+ help = "If non-empty, write a textual representation of the build event protocol to that file"
+ )
+ public String buildEventTextFile;
+
public boolean useColor() {
return useColorEnum == UseColor.YES || (useColorEnum == UseColor.AUTO && isATty);
}