diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2025-02-06 18:00:47 +0100 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2025-02-14 18:17:07 +0100 |
commit | 753096ea73e1964474b811725244344b61a40010 (patch) | |
tree | e9a185c2affe32691a119921d933b4699daac2a1 /src | |
parent | 7bbb182de03960e78964b575c87f8d9c85887923 (diff) | |
download | justbuild-753096ea73e1964474b811725244344b61a40010.tar.gz |
Add enum for add-to-cas resolve special option
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/file_system/symlinks/TARGETS | 6 | ||||
-rw-r--r-- | src/buildtool/file_system/symlinks/resolve_special.hpp | 45 |
2 files changed, 51 insertions, 0 deletions
diff --git a/src/buildtool/file_system/symlinks/TARGETS b/src/buildtool/file_system/symlinks/TARGETS index ea5c6bde..9dd52d93 100644 --- a/src/buildtool/file_system/symlinks/TARGETS +++ b/src/buildtool/file_system/symlinks/TARGETS @@ -26,4 +26,10 @@ , "hdrs": ["pragma_special.hpp"] , "stage": ["src", "buildtool", "file_system", "symlinks"] } +, "resolve_special": + { "type": ["@", "rules", "CC", "library"] + , "name": ["resolve_special"] + , "hdrs": ["resolve_special.hpp"] + , "stage": ["src", "buildtool", "file_system", "symlinks"] + } } diff --git a/src/buildtool/file_system/symlinks/resolve_special.hpp b/src/buildtool/file_system/symlinks/resolve_special.hpp new file mode 100644 index 00000000..6cda4f28 --- /dev/null +++ b/src/buildtool/file_system/symlinks/resolve_special.hpp @@ -0,0 +1,45 @@ +// Copyright 2025 Huawei Cloud Computing Technology Co., Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef INCLUDED_SRC_BUILDTOOL_FILE_SYSTEM_SYMLINKS_FS_RESOLVE_SPECIAL_HPP +#define INCLUDED_SRC_BUILDTOOL_FILE_SYSTEM_SYMLINKS_FS_RESOLVE_SPECIAL_HPP + +#include <cstdint> +#include <functional> +#include <string> +#include <unordered_map> +#include <utility> + +/* Enum used by add-to-cas subcommand */ + +/// \brief Resolve special option value enum +enum class ResolveSpecial : std::uint8_t { + // Ignore special entries + Ignore, + // Allow symlinks confined to tree and resolve the ones that are upwards + TreeUpwards, + // Allow symlinks confined to tree and resolve them + TreeAll, + // Unconditionally allow symlinks and resolve them + All +}; + +/// \brief ResolveSpecial value map, from string to enum +inline std::unordered_map<std::string, ResolveSpecial> const + kResolveSpecialMap = {{"ignore", ResolveSpecial::Ignore}, + {"tree-upwards", ResolveSpecial::TreeUpwards}, + {"tree-all", ResolveSpecial::TreeAll}, + {"all", ResolveSpecial::All}}; + +#endif // INCLUDED_SRC_BUILDTOOL_FILE_SYSTEM_SYMLINKS_FS_RESOLVE_SPECIAL_HPP |