aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/actions
diff options
context:
space:
mode:
authorGravatar Jon Brandvein <brandjon@google.com>2016-10-11 18:47:33 +0000
committerGravatar Yue Gan <yueg@google.com>2016-10-12 08:56:04 +0000
commit511b19e088a6def4d01c727e6cc1f20bd567dcec (patch)
tree920448627fe2bcc5eb962ead540263f9e1b185df /src/main/java/com/google/devtools/build/lib/analysis/actions
parent1750a3f4ff7f8b6d0cb8ccf62dbed9e3bcf4b932 (diff)
[Roll-forward] Rollback of commit dd299dbc61be51112534a4698f7cf2deee43053b.
*** Reason for rollback *** Fixed underlying broken CL that was depended on *** Original change description *** Automated [] rollback of commit e025939e71b179ae0f6bd09ef3af474f49b853a2. *** Reason for rollback *** Depends on commit 9c25afe750a937b2152c21a93effc8b9ba82c27b, which needs to be rolled back. *** Original change description *** Add API for individual actions This exposes action inputs, outputs, argv, content, and substitutions (if applicable). -- MOS_MIGRATED_REVID=135821603
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/actions')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java20
3 files changed, 29 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java
index 64ea99c04d..feb1addddb 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java
@@ -23,7 +23,6 @@ import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.LazyString;
-
import java.io.IOException;
import java.io.OutputStream;
import java.util.Collection;
@@ -113,6 +112,11 @@ public final class FileWriteAction extends AbstractFileWriteAction {
return fileContents.toString();
}
+ @Override
+ public String getSkylarkContent() {
+ return getFileContents();
+ }
+
/**
* Create a DeterministicWriter for the content of the output file as provided by
* {@link #getFileContents()}.
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
index 5d8ad84e76..8ee985891e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
@@ -48,6 +48,7 @@ import com.google.devtools.build.lib.collect.CollectionUtils;
import com.google.devtools.build.lib.collect.IterablesChain;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
+import com.google.devtools.build.lib.syntax.SkylarkList;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.util.ShellEscaper;
@@ -65,7 +66,7 @@ import javax.annotation.Nullable;
/** An Action representing an arbitrary subprocess to be forked and exec'd. */
public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifier, CommandAction {
-
+
/** Sets extensions on ExtraActionInfo **/
protected static class ExtraActionInfoSupplier<T> {
private final GeneratedExtension<ExtraActionInfo, T> extension;
@@ -205,6 +206,11 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie
return ImmutableList.copyOf(argv.arguments());
}
+ @Override
+ public SkylarkList<String> getSkylarkArgv() {
+ return SkylarkList.createImmutable(getArguments());
+ }
+
/**
* Returns the list of options written to the parameter file. Don't use this method outside tests.
* The list is often huge, resulting in significant garbage collection overhead.
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java
index fe404e1168..6fac2d2228 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java
@@ -24,12 +24,12 @@ import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.syntax.SkylarkDict;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.ResourceFileLoader;
import com.google.devtools.build.lib.util.StringUtilities;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.Path;
-
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.Charset;
@@ -97,7 +97,7 @@ public final class TemplateExpansionAction extends AbstractFileWriteAction {
}
};
}
-
+
/**
* Returns an immutable Substitution instance for the key and map of values. Corresponding
* values in the map will be joined with "=", and pairs will be joined by spaces before
@@ -119,7 +119,7 @@ public final class TemplateExpansionAction extends AbstractFileWriteAction {
}
};
}
-
+
@Override
public boolean equals(Object object) {
if (this == object) {
@@ -347,6 +347,11 @@ public final class TemplateExpansionAction extends AbstractFileWriteAction {
}
@Override
+ public String getSkylarkContent() throws IOException {
+ return getFileContents();
+ }
+
+ @Override
public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx) throws IOException {
final byte[] bytes = getFileContents().getBytes(Template.DEFAULT_CHARSET);
return new DeterministicWriter() {
@@ -384,4 +389,13 @@ public final class TemplateExpansionAction extends AbstractFileWriteAction {
public List<Substitution> getSubstitutions() {
return substitutions;
}
+
+ @Override
+ public SkylarkDict<String, String> getSkylarkSubstitutions() {
+ ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
+ for (Substitution entry : substitutions) {
+ builder.put(entry.getKey(), entry.getValue());
+ }
+ return SkylarkDict.copyOf(null, builder.build());
+ }
}