From a266d84863663ead200e9bf9e53ad4287f5a3bbe Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Thu, 5 Dec 2024 14:55:01 +0100 Subject: Also for installation to stdout prefer local CAS ... to avoid unnecessary network fetches. --- src/buildtool/graph_traverser/graph_traverser.hpp | 11 +++++++---- src/buildtool/main/install_cas.cpp | 6 ++++-- 2 files changed, 11 insertions(+), 6 deletions(-) (limited to 'src') 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; } -- cgit v1.2.3