diff options
author | 2018-03-02 05:17:12 -0800 | |
---|---|---|
committer | 2018-03-02 05:19:07 -0800 | |
commit | 7c5000944c8264115792ebb82c008ad95493ec68 (patch) | |
tree | d718a6bc687a899645f4a7d30d894a4d55567f32 /src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java | |
parent | fefd1b24017ddb7606056bec081a173217a116c8 (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.java | 27 |
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(); |