cmFSPermissions.cxx 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #include "cmFSPermissions.h"
  4. bool cmFSPermissions::stringToModeT(std::string const& arg,
  5. mode_t& permissions)
  6. {
  7. if (arg == "OWNER_READ") {
  8. permissions |= mode_owner_read;
  9. } else if (arg == "OWNER_WRITE") {
  10. permissions |= mode_owner_write;
  11. } else if (arg == "OWNER_EXECUTE") {
  12. permissions |= mode_owner_execute;
  13. } else if (arg == "GROUP_READ") {
  14. permissions |= mode_group_read;
  15. } else if (arg == "GROUP_WRITE") {
  16. permissions |= mode_group_write;
  17. } else if (arg == "GROUP_EXECUTE") {
  18. permissions |= mode_group_execute;
  19. } else if (arg == "WORLD_READ") {
  20. permissions |= mode_world_read;
  21. } else if (arg == "WORLD_WRITE") {
  22. permissions |= mode_world_write;
  23. } else if (arg == "WORLD_EXECUTE") {
  24. permissions |= mode_world_execute;
  25. } else if (arg == "SETUID") {
  26. permissions |= mode_setuid;
  27. } else if (arg == "SETGID") {
  28. permissions |= mode_setgid;
  29. } else {
  30. return false;
  31. }
  32. return true;
  33. }