diff options
author | tomlu <tomlu@google.com> | 2018-04-30 09:41:53 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-30 09:43:19 -0700 |
commit | d7fde0ea4580e58beb6801929daf0c183c3affba (patch) | |
tree | 301e44d12bc19bb18a1bc8c5da4d087a8deedc37 /src/main/java/com/google/devtools/build/lib/exec | |
parent | 25d5efc1b1e51a618c6fc81f6e987cf416322fb8 (diff) |
Support ParamFileActionInput in LocalSpawnRunner.
RELNOTES: None
PiperOrigin-RevId: 194798051
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/exec')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunner.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunner.java index e22da3ef85..cd4075f6bb 100644 --- a/src/main/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunner.java +++ b/src/main/java/com/google/devtools/build/lib/exec/local/LocalSpawnRunner.java @@ -22,12 +22,15 @@ import com.google.common.base.Joiner; import com.google.common.base.Preconditions; import com.google.common.io.ByteStreams; import com.google.devtools.build.lib.actions.ActionExecutionMetadata; +import com.google.devtools.build.lib.actions.ActionInput; +import com.google.devtools.build.lib.actions.CommandLines.ParamFileActionInput; import com.google.devtools.build.lib.actions.ResourceManager; import com.google.devtools.build.lib.actions.ResourceManager.ResourceHandle; import com.google.devtools.build.lib.actions.Spawn; import com.google.devtools.build.lib.actions.SpawnResult; import com.google.devtools.build.lib.actions.SpawnResult.Status; import com.google.devtools.build.lib.actions.Spawns; +import com.google.devtools.build.lib.actions.cache.VirtualActionInput; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.exec.SpawnRunner; import com.google.devtools.build.lib.runtime.ProcessWrapperUtil; @@ -241,6 +244,20 @@ public class LocalSpawnRunner implements SpawnRunner { context.prefetchInputs(); } + for (ActionInput input : spawn.getInputFiles()) { + if (input instanceof ParamFileActionInput) { + VirtualActionInput virtualActionInput = (VirtualActionInput) input; + Path outputPath = execRoot.getRelative(virtualActionInput.getExecPath()); + if (outputPath.exists()) { + outputPath.delete(); + } + outputPath.getParentDirectory().createDirectoryAndParents(); + try (OutputStream outputStream = outputPath.getOutputStream()) { + virtualActionInput.writeTo(outputStream); + } + } + } + stepLog(INFO, "running locally"); setState(State.LOCAL_ACTION_RUNNING); |