From e5010e47df602404d332d9686c04fa12358e3644 Mon Sep 17 00:00:00 2001 From: Paul Cristian Sarbu Date: Fri, 23 May 2025 11:43:07 +0200 Subject: FileRoot: Give git-based roots access to storage config --- src/buildtool/serve_api/serve_service/target_utils.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'src/buildtool/serve_api/serve_service/target_utils.cpp') 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 storage_config, std::string const& main_repo, std::filesystem::path const& repo_config_path, gsl::not_null 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 { 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); -- cgit v1.2.3