summaryrefslogtreecommitdiff
path: root/src/buildtool/serve_api/serve_service/target_utils.cpp
diff options
context:
space:
mode:
authorPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2025-05-23 11:43:07 +0200
committerPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2025-06-04 14:34:44 +0200
commite5010e47df602404d332d9686c04fa12358e3644 (patch)
tree7a4e92afd9186f0206a726a3c45d8d0be9cd1cce /src/buildtool/serve_api/serve_service/target_utils.cpp
parented25b0f77690abe1f04e4cdcb284b7e17208d169 (diff)
downloadjustbuild-e5010e47df602404d332d9686c04fa12358e3644.tar.gz
FileRoot: Give git-based roots access to storage config
Diffstat (limited to 'src/buildtool/serve_api/serve_service/target_utils.cpp')
-rw-r--r--src/buildtool/serve_api/serve_service/target_utils.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/buildtool/serve_api/serve_service/target_utils.cpp b/src/buildtool/serve_api/serve_service/target_utils.cpp
index 433c2961..3fd98242 100644
--- a/src/buildtool/serve_api/serve_service/target_utils.cpp
+++ b/src/buildtool/serve_api/serve_service/target_utils.cpp
@@ -66,7 +66,7 @@ auto GetServingRepository(RemoteServeConfig const& serve_config,
}
auto DetermineRoots(RemoteServeConfig const& serve_config,
- StorageConfig const& storage_config,
+ gsl::not_null<StorageConfig const*> storage_config,
std::string const& main_repo,
std::filesystem::path const& repo_config_path,
gsl::not_null<RepositoryConfig*> const& repository_config,
@@ -97,15 +97,12 @@ auto DetermineRoots(RemoteServeConfig const& serve_config,
for (auto const& [repo, desc] : repos.items()) {
// root parser
auto parse_keyword_root =
- [&serve_config,
- &storage_config,
- &desc = desc,
- &repo = repo,
- logger](
+ [&serve_config, storage_config, &desc = desc, &repo = repo, logger](
std::string const& keyword) -> expected<FileRoot, std::string> {
auto it = desc.find(keyword);
if (it != desc.end()) {
- auto parsed_root = FileRoot::ParseRoot(repo, keyword, *it);
+ auto parsed_root =
+ FileRoot::ParseRoot(storage_config, repo, keyword, *it);
if (not parsed_root) {
return unexpected{std::move(parsed_root).error()};
}
@@ -120,14 +117,15 @@ auto DetermineRoots(RemoteServeConfig const& serve_config,
// find the serving repository for the root tree
auto tree_id = *parsed_root->first.GetAbsentTreeId();
auto repo_path = GetServingRepository(
- serve_config, storage_config, tree_id, logger);
+ serve_config, *storage_config, tree_id, logger);
if (not repo_path) {
return unexpected{fmt::format(
"{} tree {} is not known", keyword, tree_id)};
}
// set the root as present
if (auto root =
- FileRoot::FromGit(*repo_path,
+ FileRoot::FromGit(storage_config,
+ *repo_path,
tree_id,
parsed_root->first.IgnoreSpecial())) {
return *std::move(root);