diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2024-09-10 15:19:47 +0200 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2024-09-11 14:52:07 +0200 |
commit | b81206fe9885ed9f6fb0426d91ac607f7d8393c3 (patch) | |
tree | b750095e20b003a9490b9e55150727a61c0f12b5 /src/buildtool/execution_api/common/blob_tree.cpp | |
parent | f0884e0cb131d50c02b322090a8b065fdde86e55 (diff) | |
download | justbuild-b81206fe9885ed9f6fb0426d91ac607f7d8393c3.tar.gz |
Use ArtifactDigestFactory in BlobTree
...to create ArtifactDigests.
Diffstat (limited to 'src/buildtool/execution_api/common/blob_tree.cpp')
-rw-r--r-- | src/buildtool/execution_api/common/blob_tree.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/buildtool/execution_api/common/blob_tree.cpp b/src/buildtool/execution_api/common/blob_tree.cpp index 6e04d55f..daf2a87c 100644 --- a/src/buildtool/execution_api/common/blob_tree.cpp +++ b/src/buildtool/execution_api/common/blob_tree.cpp @@ -18,6 +18,9 @@ #include <variant> #include "src/buildtool/common/artifact.hpp" +#include "src/buildtool/common/artifact_digest.hpp" +#include "src/buildtool/common/artifact_digest_factory.hpp" +#include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/file_system/git_repo.hpp" #include "src/buildtool/file_system/object_type.hpp" #include "src/utils/cpp/hex_string.hpp" @@ -61,13 +64,18 @@ auto BlobTree::FromDirectoryTree(DirectoryTreePtr const& tree, } } if (auto git_tree = GitRepo::CreateShallowTree(entries)) { - ArtifactDigest digest{ToHexString(git_tree->first), - git_tree->second.size(), - /*is_tree=*/true}; - return std::make_shared<BlobTree>(ArtifactBlob{std::move(digest), - git_tree->second, - /*is_exec=*/false}, - nodes); + auto digest = + ArtifactDigestFactory::Create(HashFunction::Type::GitSHA1, + ToHexString(git_tree->first), + git_tree->second.size(), + /*is_tree=*/true); + if (digest) { + return std::make_shared<BlobTree>( + ArtifactBlob{*std::move(digest), + git_tree->second, + /*is_exec=*/false}, + nodes); + } } } catch (...) { return std::nullopt; |