summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api
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
parentf0884e0cb131d50c02b322090a8b065fdde86e55 (diff)
downloadjustbuild-b81206fe9885ed9f6fb0426d91ac607f7d8393c3.tar.gz
Use ArtifactDigestFactory in BlobTree
...to create ArtifactDigests.
Diffstat (limited to 'src/buildtool/execution_api')
-rw-r--r--src/buildtool/execution_api/common/TARGETS3
-rw-r--r--src/buildtool/execution_api/common/blob_tree.cpp22
2 files changed, 18 insertions, 7 deletions
diff --git a/src/buildtool/execution_api/common/TARGETS b/src/buildtool/execution_api/common/TARGETS
index 5965838b..4c9cfa81 100644
--- a/src/buildtool/execution_api/common/TARGETS
+++ b/src/buildtool/execution_api/common/TARGETS
@@ -95,6 +95,9 @@
[ ["src/buildtool/file_system", "git_repo"]
, ["src/buildtool/file_system", "object_type"]
, ["src/utils/cpp", "hex_string"]
+ , ["src/buildtool/common", "common"]
+ , ["src/buildtool/common", "artifact_digest_factory"]
+ , ["src/buildtool/crypto", "hash_function"]
]
, "stage": ["src", "buildtool", "execution_api", "common"]
}
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;