summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/common/blob_tree.cpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-09-10 15:19:47 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-09-11 14:52:07 +0200
commitb81206fe9885ed9f6fb0426d91ac607f7d8393c3 (patch)
treeb750095e20b003a9490b9e55150727a61c0f12b5 /src/buildtool/execution_api/common/blob_tree.cpp
parentf0884e0cb131d50c02b322090a8b065fdde86e55 (diff)
downloadjustbuild-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.cpp22
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;