diff options
Diffstat (limited to 'src/buildtool/execution_api/local/local_cas_reader.hpp')
-rw-r--r-- | src/buildtool/execution_api/local/local_cas_reader.hpp | 8 |
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_; |