aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java
diff options
context:
space:
mode:
authorGravatar twerth <twerth@google.com>2018-03-02 05:17:12 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-02 05:19:07 -0800
commit7c5000944c8264115792ebb82c008ad95493ec68 (patch)
treed718a6bc687a899645f4a7d30d894a4d55567f32 /src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java
parentfefd1b24017ddb7606056bec081a173217a116c8 (diff)
Add option to filter for targets in the action graph dump.
RELNOTES: Use bazel dump --action_graph=/path/to/action.proto --action_graph:targets://foo:bar,//foo:foo to filter for certain targets in the action graph dump. PiperOrigin-RevId: 187608321
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java
index 35d38003d7..2400cf6d18 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java
@@ -34,6 +34,7 @@ import com.google.devtools.build.lib.runtime.CommandEnvironment;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor.RuleStat;
import com.google.devtools.build.lib.util.ExitCode;
+import com.google.devtools.common.options.Converters.CommaSeparatedOptionListConverter;
import com.google.devtools.common.options.EnumConverter;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionDocumentationCategory;
@@ -114,6 +115,19 @@ public class DumpCommand implements BlazeCommand {
public String dumpActionGraph;
@Option(
+ name = "action_graph:targets",
+ converter = CommaSeparatedOptionListConverter.class,
+ defaultValue = "...",
+ category = "verbosity",
+ documentationCategory = OptionDocumentationCategory.OUTPUT_SELECTION,
+ effectTags = {OptionEffectTag.BAZEL_MONITORING},
+ help =
+ "Comma separated list of targets to include in action graph dump. "
+ + "Defaults to all attributes. This option does only apply to --action_graph."
+ )
+ public List<String> actionGraphTargets;
+
+ @Option(
name = "rule_classes",
defaultValue = "false",
category = "verbosity",
@@ -232,7 +246,12 @@ public class DumpCommand implements BlazeCommand {
if (dumpOptions.dumpActionGraph != null) {
try {
- success &= dumpActionGraph(env.getSkyframeExecutor(), dumpOptions.dumpActionGraph, out);
+ success &=
+ dumpActionGraph(
+ env.getSkyframeExecutor(),
+ dumpOptions.dumpActionGraph,
+ dumpOptions.actionGraphTargets,
+ out);
} catch (IOException e) {
env.getReporter()
.error(
@@ -283,10 +302,12 @@ public class DumpCommand implements BlazeCommand {
return true;
}
- private boolean dumpActionGraph(SkyframeExecutor executor, String path, PrintStream out)
+ private boolean dumpActionGraph(
+ SkyframeExecutor executor, String path, List<String> actionGraphTargets, PrintStream out)
throws IOException {
out.println("Dumping action graph to '" + path + "'");
- ActionGraphContainer actionGraphContainer = executor.getActionGraphContainer();
+ ActionGraphContainer actionGraphContainer =
+ executor.getActionGraphContainer(actionGraphTargets);
FileOutputStream protoOutputStream = new FileOutputStream(path);
actionGraphContainer.writeTo(protoOutputStream);
protoOutputStream.close();