aquery: Add option to include/exclude the command line of actions.
RELNOTES: None
PiperOrigin-RevId: 211810138
diff --git a/src/main/java/com/google/devtools/build/lib/query2/ActionGraphProtoOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/ActionGraphProtoOutputFormatterCallback.java
index d18ee18..6b148b8 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/ActionGraphProtoOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/ActionGraphProtoOutputFormatterCallback.java
@@ -38,8 +38,7 @@
SkyframeExecutor skyframeExecutor,
TargetAccessor<ConfiguredTargetValue> accessor) {
super(reporter, options, out, skyframeExecutor, accessor);
- // TODO(twerth): Allow users to include action command lines.
- actionGraphDump = new ActionGraphDump(/* includeActionCmdLine */ false);
+ actionGraphDump = new ActionGraphDump(options.includeCommandline);
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/query2/ActionGraphTextOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/ActionGraphTextOutputFormatterCallback.java
index 45a1e96..26c89f3 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/ActionGraphTextOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/ActionGraphTextOutputFormatterCallback.java
@@ -144,17 +144,18 @@
.append("]\n");
}
- // TODO(twerth): Add option to only optionally include the command line.
- stringBuilder
- .append(" Command Line: ")
- .append(
- CommandFailureUtils.describeCommand(
- CommandDescriptionForm.COMPLETE,
- /* prettyPrintArgs= */ true,
- spawnAction.getArguments(),
- /* environment= */ null,
- /* cwd= */ null))
- .append("\n");
+ if (options.includeCommandline) {
+ stringBuilder
+ .append(" Command Line: ")
+ .append(
+ CommandFailureUtils.describeCommand(
+ CommandDescriptionForm.COMPLETE,
+ /* prettyPrintArgs= */ true,
+ spawnAction.getArguments(),
+ /* environment= */ null,
+ /* cwd= */ null))
+ .append("\n");
+ }
}
if (action instanceof ExecutionInfoSpecifier) {
diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/AqueryOptions.java b/src/main/java/com/google/devtools/build/lib/query2/output/AqueryOptions.java
index 157b3b4f..5a83282 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/output/AqueryOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/output/AqueryOptions.java
@@ -27,4 +27,12 @@
effectTags = {OptionEffectTag.TERMINAL_OUTPUT},
help = "The format in which the aquery results should be printed.")
public String outputFormat;
+
+ @Option(
+ name = "include_commandline",
+ defaultValue = "true",
+ documentationCategory = OptionDocumentationCategory.QUERY,
+ effectTags = {OptionEffectTag.TERMINAL_OUTPUT},
+ help = "Includes the content of the action command lines in the output (potentially large).")
+ public boolean includeCommandline;
}
diff --git a/src/test/shell/integration/aquery_test.sh b/src/test/shell/integration/aquery_test.sh
index 67f34bb..d0b5a51 100755
--- a/src/test/shell/integration/aquery_test.sh
+++ b/src/test/shell/integration/aquery_test.sh
@@ -115,6 +115,11 @@
else
assert_contains "Command Line: (" output
fi
+
+ assert_contains "echo unused" output
+ bazel aquery --noinclude_commandline "//$pkg:bar" > output \
+ 2> "$TEST_log" || fail "Expected success"
+ assert_not_contains "echo unused" output
}
function test_aquery_skylark_env() {