diff options
| author | Joe Kirchoff <[email protected]> | 2021-12-01 14:31:02 -0800 |
|---|---|---|
| committer | Joe Kirchoff <[email protected]> | 2021-12-01 14:31:02 -0800 |
| commit | a929b2220d15edede03b023f4a2a257605a97a54 (patch) | |
| tree | 572ac5c59a3cdc6a0340714552eb365891be4d79 /zenserver/upstream/upstreamapply.cpp | |
| parent | Don't throw a runtime_error if remote execute api fails (diff) | |
| download | zen-a929b2220d15edede03b023f4a2a257605a97a54.tar.xz zen-a929b2220d15edede03b023f4a2a257605a97a54.zip | |
Write dummy file to ensure directories exist for remote execution
Diffstat (limited to 'zenserver/upstream/upstreamapply.cpp')
| -rw-r--r-- | zenserver/upstream/upstreamapply.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/zenserver/upstream/upstreamapply.cpp b/zenserver/upstream/upstreamapply.cpp index 1779099ff..e34781eb0 100644 --- a/zenserver/upstream/upstreamapply.cpp +++ b/zenserver/upstream/upstreamapply.cpp @@ -37,6 +37,9 @@ namespace zen { using namespace std::literals; +static const IoBuffer EmptyBuffer; +static const IoHash EmptyBufferId = IoHash::HashBuffer(EmptyBuffer); + namespace detail { class HordeUpstreamApplyEndpoint final : public UpstreamApplyEndpoint @@ -705,6 +708,8 @@ namespace detail { [[nodiscard]] bool ProcessApplyKey(const UpstreamApplyRecord& ApplyRecord, UpstreamData& Data) { + using namespace fmt::literals; + std::string ExecutablePath; std::map<std::string, std::string> Environment; std::set<std::filesystem::path> InputFiles; @@ -736,6 +741,15 @@ namespace detail { } } + for (auto& It : ApplyRecord.WorkerDescriptor["dirs"sv]) + { + std::string_view Directory = It.AsString(); + std::string DummyFile = "{}/.zen_empty_file"_format(Directory); + InputFiles.insert(DummyFile); + Data.Blobs[EmptyBufferId] = EmptyBuffer; + InputFileHashes[DummyFile] = EmptyBufferId; + } + for (auto& It : ApplyRecord.WorkerDescriptor["environment"sv]) { std::string_view Env = It.AsString(); |