summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2024-12-05 14:55:01 +0100
committerKlaus Aehlig <klaus.aehlig@huawei.com>2024-12-05 16:42:20 +0100
commita266d84863663ead200e9bf9e53ad4287f5a3bbe (patch)
tree60474d7c444eb21fe4724f3937184f917da33bfc /src
parent17be89e34ce5b1160af90430be8e0b32acbf6efc (diff)
downloadjustbuild-a266d84863663ead200e9bf9e53ad4287f5a3bbe.tar.gz
Also for installation to stdout prefer local CAS
... to avoid unnecessary network fetches.
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/graph_traverser/graph_traverser.hpp11
-rw-r--r--src/buildtool/main/install_cas.cpp6
2 files changed, 11 insertions, 6 deletions
diff --git a/src/buildtool/graph_traverser/graph_traverser.hpp b/src/buildtool/graph_traverser/graph_traverser.hpp
index ddd25277..51069c0b 100644
--- a/src/buildtool/graph_traverser/graph_traverser.hpp
+++ b/src/buildtool/graph_traverser/graph_traverser.hpp
@@ -681,7 +681,8 @@ class GraphTraverser {
if (info) {
if (not remote.RetrieveToFds({*info},
{dup(fileno(stdout))},
- /*raw_tree=*/false)) {
+ /*raw_tree=*/false,
+ &*context_.apis->local)) {
Logger::Log(logger_,
LogLevel::Error,
"Failed to retrieve {}",
@@ -720,9 +721,11 @@ class GraphTraverser {
auto new_info =
RetrieveSubPathId(*info, *context_.apis, relpath);
if (new_info) {
- if (not remote.RetrieveToFds({*new_info},
- {dup(fileno(stdout))},
- /*raw_tree=*/false)) {
+ if (not remote.RetrieveToFds(
+ {*new_info},
+ {dup(fileno(stdout))},
+ /*raw_tree=*/false,
+ &*context_.apis->local)) {
Logger::Log(logger_,
LogLevel::Error,
"Failed to retrieve artifact {} at "
diff --git a/src/buildtool/main/install_cas.cpp b/src/buildtool/main/install_cas.cpp
index ca851d25..8f7f9d65 100644
--- a/src/buildtool/main/install_cas.cpp
+++ b/src/buildtool/main/install_cas.cpp
@@ -173,8 +173,10 @@ auto FetchAndInstallArtifacts(ApiBundle const& apis,
out->string());
}
else { // dump to stdout
- if (not apis.remote->RetrieveToFds(
- {*object_info}, {dup(fileno(stdout))}, clargs.raw_tree)) {
+ if (not apis.remote->RetrieveToFds({*object_info},
+ {dup(fileno(stdout))},
+ clargs.raw_tree,
+ &*apis.local)) {
Logger::Log(LogLevel::Error, "failed to dump artifact.");
return false;
}