summaryrefslogtreecommitdiff
path: root/include/ibm/utils.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/ibm/utils.hpp')
-rw-r--r--include/ibm/utils.hpp43
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