diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-06-14 16:53:33 +0200 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-06-26 17:57:29 +0200 |
commit | 59677e140ed064813660641d8e841e0fcc4af0ea (patch) | |
tree | a20db484c091e7bda753dad63c4e44270fa1de0d /src/buildtool/execution_api/local/local_action.hpp | |
parent | 5e3cc5a7a38e93159a81b940b19ced879a2d280c (diff) | |
download | justbuild-59677e140ed064813660641d8e841e0fcc4af0ea.tar.gz |
Allow non-upwards symlinks with local API
Diffstat (limited to 'src/buildtool/execution_api/local/local_action.hpp')
-rw-r--r-- | src/buildtool/execution_api/local/local_action.hpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/buildtool/execution_api/local/local_action.hpp b/src/buildtool/execution_api/local/local_action.hpp index a49060e4..95f95ff4 100644 --- a/src/buildtool/execution_api/local/local_action.hpp +++ b/src/buildtool/execution_api/local/local_action.hpp @@ -38,6 +38,11 @@ class LocalAction final : public IExecutionAction { bool is_cached{}; }; + using OutputFileOrSymlink = + std::variant<bazel_re::OutputFile, bazel_re::OutputSymlink>; + using OutputDirOrSymlink = + std::variant<bazel_re::OutputDirectory, bazel_re::OutputSymlink>; + auto Execute(Logger const* logger) noexcept -> IExecutionResponse::Ptr final; @@ -112,13 +117,15 @@ class LocalAction final : public IExecutionAction { [[nodiscard]] auto CreateDirectoryStructure( std::filesystem::path const& exec_path) const noexcept -> bool; - [[nodiscard]] auto CollectOutputFile(std::filesystem::path const& exec_path, - std::string const& local_path) - const noexcept -> std::optional<bazel_re::OutputFile>; + [[nodiscard]] auto CollectOutputFileOrSymlink( + std::filesystem::path const& exec_path, + std::string const& local_path) const noexcept + -> std::optional<OutputFileOrSymlink>; - [[nodiscard]] auto CollectOutputDir(std::filesystem::path const& exec_path, - std::string const& local_path) - const noexcept -> std::optional<bazel_re::OutputDirectory>; + [[nodiscard]] auto CollectOutputDirOrSymlink( + std::filesystem::path const& exec_path, + std::string const& local_path) const noexcept + -> std::optional<OutputDirOrSymlink>; [[nodiscard]] auto CollectAndStoreOutputs( bazel_re::ActionResult* result, |