Description redacted.
--
MOS_MIGRATED_REVID=104886879
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java b/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
index 13a30b0..0a48b2c 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
@@ -37,6 +37,8 @@
import java.util.Map;
import java.util.Map.Entry;
+import javax.annotation.Nullable;
+
/**
* Provides shared functionality for parameterized command-line launching
* e.g. {@link com.google.devtools.build.lib.view.genrule.GenRule}
@@ -169,21 +171,38 @@
}
/**
+ * Resolves a command, and expands known locations for $(location)
+ * variables.
+ */
+ public String resolveCommandAndExpandLabels(
+ String command,
+ @Nullable String attribute,
+ Boolean supportLegacyExpansion,
+ Boolean allowDataInLabel) {
+ LocationExpander expander = new LocationExpander(ruleContext, labelMap, allowDataInLabel);
+ if (attribute != null) {
+ command = expander.expandAttribute(attribute, command);
+ } else {
+ command = expander.expand(command);
+ }
+ if (supportLegacyExpansion) {
+ command = expandLabels(command, labelMap);
+ }
+ return command;
+ }
+
+ /**
* Resolves the 'cmd' attribute, and expands known locations for $(location)
* variables.
*/
@SkylarkCallable(doc = "Experimental.")
public String resolveCommandAndExpandLabels(
Boolean supportLegacyExpansion, Boolean allowDataInLabel) {
- String command = ruleContext.attributes().get("cmd", Type.STRING);
- command =
- new LocationExpander(ruleContext, labelMap, allowDataInLabel)
- .expandAttribute("cmd", command);
-
- if (supportLegacyExpansion) {
- command = expandLabels(command, labelMap);
- }
- return command;
+ return resolveCommandAndExpandLabels(
+ ruleContext.attributes().get("cmd", Type.STRING),
+ "cmd",
+ supportLegacyExpansion,
+ allowDataInLabel);
}
/**