summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/local/local_action.hpp
diff options
context:
space:
mode:
authorPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2023-06-14 16:53:33 +0200
committerPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2023-06-26 17:57:29 +0200
commit59677e140ed064813660641d8e841e0fcc4af0ea (patch)
treea20db484c091e7bda753dad63c4e44270fa1de0d /src/buildtool/execution_api/local/local_action.hpp
parent5e3cc5a7a38e93159a81b940b19ced879a2d280c (diff)
downloadjustbuild-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.hpp19
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,