summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/local/local_cas_reader.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/execution_api/local/local_cas_reader.hpp')
-rw-r--r--src/buildtool/execution_api/local/local_cas_reader.hpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/buildtool/execution_api/local/local_cas_reader.hpp b/src/buildtool/execution_api/local/local_cas_reader.hpp
index 090aa9d1..3ac47f64 100644
--- a/src/buildtool/execution_api/local/local_cas_reader.hpp
+++ b/src/buildtool/execution_api/local/local_cas_reader.hpp
@@ -26,6 +26,7 @@
#include "src/buildtool/common/bazel_types.hpp"
#include "src/buildtool/file_system/git_repo.hpp"
#include "src/buildtool/storage/local_cas.hpp"
+#include "src/utils/cpp/expected.hpp"
class LocalCasReader final {
public:
@@ -58,6 +59,13 @@ class LocalCasReader final {
[[nodiscard]] auto IsNativeProtocol() const noexcept -> bool;
+ /// \brief Check recursively if Directory contains any invalid entries
+ /// (i.e., upwards symlinks).
+ /// \returns True if Directory is ok, false if at least on upwards symlink
+ /// has been found, error message on other failures.
+ [[nodiscard]] auto IsDirectoryValid(ArtifactDigest const& digest)
+ const noexcept -> expected<bool, std::string>;
+
private:
LocalCAS<true> const& cas_;