summaryrefslogtreecommitdiff
path: root/Source/cmFSPermissions.cxx
diff options
context:
space:
mode:
authorDomen Vrankar <domen.vrankar@gmail.com>2017-11-02 21:42:18 +0100
committerDomen Vrankar <domen.vrankar@gmail.com>2017-11-08 20:27:11 +0100
commit670ad047b34d983daf1f17f8b32c4abe2b7f22b1 (patch)
treed0e7d93d5bdc479ca3b3051898f2219844bbdb1e /Source/cmFSPermissions.cxx
parentdeeba85f81bb031384c1c014d7adcb733da491b4 (diff)
downloadcmake-670ad047b34d983daf1f17f8b32c4abe2b7f22b1.tar.gz
Move file/dir permissions code to common file.
Diffstat (limited to 'Source/cmFSPermissions.cxx')
-rw-r--r--Source/cmFSPermissions.cxx34
1 files changed, 34 insertions, 0 deletions
diff --git a/Source/cmFSPermissions.cxx b/Source/cmFSPermissions.cxx
new file mode 100644
index 0000000000..4015a51648
--- /dev/null
+++ b/Source/cmFSPermissions.cxx
@@ -0,0 +1,34 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#include "cmFSPermissions.h"
+
+bool cmFSPermissions::stringToModeT(std::string const& arg,
+ mode_t& permissions)
+{
+ if (arg == "OWNER_READ") {
+ permissions |= mode_owner_read;
+ } else if (arg == "OWNER_WRITE") {
+ permissions |= mode_owner_write;
+ } else if (arg == "OWNER_EXECUTE") {
+ permissions |= mode_owner_execute;
+ } else if (arg == "GROUP_READ") {
+ permissions |= mode_group_read;
+ } else if (arg == "GROUP_WRITE") {
+ permissions |= mode_group_write;
+ } else if (arg == "GROUP_EXECUTE") {
+ permissions |= mode_group_execute;
+ } else if (arg == "WORLD_READ") {
+ permissions |= mode_world_read;
+ } else if (arg == "WORLD_WRITE") {
+ permissions |= mode_world_write;
+ } else if (arg == "WORLD_EXECUTE") {
+ permissions |= mode_world_execute;
+ } else if (arg == "SETUID") {
+ permissions |= mode_setuid;
+ } else if (arg == "SETGID") {
+ permissions |= mode_setgid;
+ } else {
+ return false;
+ }
+ return true;
+}