summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/local/local_api.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/execution_api/local/local_api.hpp')
-rw-r--r--src/buildtool/execution_api/local/local_api.hpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp
index 577d771b..87296414 100644
--- a/src/buildtool/execution_api/local/local_api.hpp
+++ b/src/buildtool/execution_api/local/local_api.hpp
@@ -309,8 +309,18 @@ class LocalApi final : public IExecutionApi {
if (Compatibility::IsCompatible()) {
BlobContainer blobs{};
+ auto const& cas = storage_->CAS();
auto digest = BazelMsgFactory::CreateDirectoryDigestFromTree(
*build_root,
+ [&cas](std::vector<bazel_re::Digest> const& digests,
+ std::vector<std::string>* targets) {
+ targets->reserve(digests.size());
+ for (auto const& digest : digests) {
+ auto p = cas.BlobPath(digest, /*is_executable=*/false);
+ auto content = FileSystemManager::ReadFile(*p);
+ targets->emplace_back(*content);
+ }
+ },
[&blobs](BazelBlob&& blob) { blobs.Emplace(std::move(blob)); });
if (not digest) {
Logger::Log(LogLevel::Debug,