summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/execution_api/local/local_api.hpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp
index dfe8be21..1e3de092 100644
--- a/src/buildtool/execution_api/local/local_api.hpp
+++ b/src/buildtool/execution_api/local/local_api.hpp
@@ -262,14 +262,15 @@ class LocalApi final : public IExecutionApi {
location = storage_->CAS().BlobPath(
artifact_info.digest, IsExecutableObject(artifact_info.type));
}
- if (not location) {
- return std::nullopt;
+ std::optional<std::string> content = std::nullopt;
+ if (location) {
+ content = FileSystemManager::ReadFile(*location);
}
- auto const content = FileSystemManager::ReadFile(*location);
- if (not content) {
- return std::nullopt;
+ if ((not content) and repo_config_) {
+ content =
+ GitApi(repo_config_.value()).RetrieveToMemory(artifact_info);
}
- return *content;
+ return content;
}
[[nodiscard]] auto Upload(BlobContainer const& blobs,