140e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 240e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 33e919b58SSunitha Harish #pragma once 43e919b58SSunitha Harish 53ccb3adbSEd Tanous #include "logging.hpp" 63e919b58SSunitha Harish 73e919b58SSunitha Harish #include <filesystem> 8*d7857201SEd Tanous #include <string_view> 9*d7857201SEd Tanous #include <system_error> 103e919b58SSunitha Harish 113e919b58SSunitha Harish namespace crow 123e919b58SSunitha Harish { 133e919b58SSunitha Harish namespace ibm_utils 143e919b58SSunitha Harish { 153e919b58SSunitha Harish createDirectory(std::string_view path)1626ccae32SEd Tanousinline bool createDirectory(std::string_view path) 173e919b58SSunitha Harish { 183e919b58SSunitha Harish // Create persistent directory 193e919b58SSunitha Harish std::error_code ec; 203e919b58SSunitha Harish 2162598e31SEd Tanous BMCWEB_LOG_DEBUG("Creating persistent directory : {}", path); 223e919b58SSunitha Harish 233e919b58SSunitha Harish bool dirCreated = std::filesystem::create_directories(path, ec); 243e919b58SSunitha Harish 253e919b58SSunitha Harish if (ec) 263e919b58SSunitha Harish { 2762598e31SEd Tanous BMCWEB_LOG_ERROR("Failed to create persistent directory : {}", path); 283e919b58SSunitha Harish return false; 293e919b58SSunitha Harish } 303e919b58SSunitha Harish 313e919b58SSunitha Harish if (dirCreated) 323e919b58SSunitha Harish { 333e919b58SSunitha Harish // set the permission of the directory to 700 3462598e31SEd Tanous BMCWEB_LOG_DEBUG("Setting the permission to 700"); 353e919b58SSunitha Harish std::filesystem::perms permission = std::filesystem::perms::owner_all; 363e919b58SSunitha Harish std::filesystem::permissions(path, permission); 373e919b58SSunitha Harish } 383e919b58SSunitha Harish else 393e919b58SSunitha Harish { 4062598e31SEd Tanous BMCWEB_LOG_DEBUG("{} already exists", path); 413e919b58SSunitha Harish } 423e919b58SSunitha Harish return true; 433e919b58SSunitha Harish } 443e919b58SSunitha Harish 453e919b58SSunitha Harish } // namespace ibm_utils 463e919b58SSunitha Harish } // namespace crow 47