diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2025-05-23 11:43:07 +0200 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2025-06-04 14:34:44 +0200 |
commit | e5010e47df602404d332d9686c04fa12358e3644 (patch) | |
tree | 7a4e92afd9186f0206a726a3c45d8d0be9cd1cce /src/buildtool/serve_api/serve_service/target_utils.cpp | |
parent | ed25b0f77690abe1f04e4cdcb284b7e17208d169 (diff) | |
download | justbuild-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.cpp | 16 |
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); |