diff options
Diffstat (limited to 'include/ibm/utils.hpp')
-rw-r--r-- | include/ibm/utils.hpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/include/ibm/utils.hpp b/include/ibm/utils.hpp new file mode 100644 index 0000000000..217b2f4d1a --- /dev/null +++ b/include/ibm/utils.hpp @@ -0,0 +1,43 @@ +#pragma once + +#include <logging.hpp> + +#include <filesystem> +#include <fstream> + +namespace crow +{ +namespace ibm_utils +{ + +inline bool createDirectory(const std::string_view path) +{ + // Create persistent directory + std::error_code ec; + + BMCWEB_LOG_DEBUG << "Creating persistent directory : " << path; + + bool dirCreated = std::filesystem::create_directories(path, ec); + + if (ec) + { + BMCWEB_LOG_ERROR << "Failed to create persistent directory : " << path; + return false; + } + + if (dirCreated) + { + // set the permission of the directory to 700 + BMCWEB_LOG_DEBUG << "Setting the permission to 700"; + std::filesystem::perms permission = std::filesystem::perms::owner_all; + std::filesystem::permissions(path, permission); + } + else + { + BMCWEB_LOG_DEBUG << path << " already exists"; + } + return true; +} + +} // namespace ibm_utils +} // namespace crow |