Loading sim/src/core/opSimulation/framework/main.cpp +37 −12 Original line number Diff line number Diff line Loading @@ -45,11 +45,19 @@ static void SetupLogging(const std::filesystem::path& executionPath, LogLevel logLevel, const std::string& logFileString); //----------------------------------------------------------------------------- //! \brief Check several parameters of a directory //! \param directory //! \param prefix for readable logging in case of an error //! \return true, if everything directory exists and really is a directory, false otherwise //----------------------------------------------------------------------------- static bool CheckDir(const std::string& directory, const std::string& prefix); //----------------------------------------------------------------------------- //! \brief Check several parameters of a readable directory //! \param directory //! \param prefix for readable logging in case of an error //! \return true, if everything is allright //! \return true, if \c CheckDir returns true and the directory is readable, false otherwise //----------------------------------------------------------------------------- static bool CheckReadableDir(const std::string& directory, const std::string& prefix); Loading @@ -57,7 +65,7 @@ static bool CheckReadableDir(const std::string& directory, const std::string& pr //! \brief Check several parameters of a writeable directory //! \param directory //! \param prefix for readable logging in case of an error //! \return true, if everything is allright //! \return true, if \c CheckDir returns true and the directory is writable, false otherwise //----------------------------------------------------------------------------- static bool CheckWritableDir(const std::string& directory, const std::string& prefix); Loading Loading @@ -265,32 +273,49 @@ bool PrepareDirectoriesAndLogging(const openpass::core::Directories& directories return statusConfig && statusLibrary && statusOutput; } bool CheckReadableDir(const std::string& directory, const std::string& prefix) bool CheckDir(const std::string& directory, const std::string& prefix) { namespace fs = std::filesystem; const fs::path dir(directory); if (!fs::exists(dir) || !fs::is_directory(dir) || access(directory.c_str(), R_OK)) if (!fs::exists(dir)) { LOG_INTERN(LogLevel::Error) << prefix << " directory " << directory << " does not exist, is not a directory, or is not readable"; LOG_INTERN(LogLevel::Error) << prefix << " directory " << directory << " does not exist"; return false; } if (!fs::is_directory(dir)) { LOG_INTERN(LogLevel::Error) << prefix << " directory " << directory << " is not a directory"; return false; } return true; } bool CheckWritableDir(const std::string& directory, const std::string& prefix) bool CheckReadableDir(const std::string& directory, const std::string& prefix) { namespace fs = std::filesystem; CheckDir(directory, prefix); const fs::path dir(directory); if (int ret = access(directory.c_str(), R_OK)) { LOG_INTERN(LogLevel::Error) << prefix << " directory " << directory << " is not readable (code " << ret << ")"; return false; } return true; } bool CheckWritableDir(const std::string& directory, const std::string& prefix) { CheckDir(directory, prefix); if (!fs::exists(dir) || !fs::is_directory(dir) || access(directory.c_str(), W_OK)) if (int ret = access(directory.c_str(), W_OK)) { LOG_INTERN(LogLevel::Error) << prefix << " directory " << directory << " does not exist, is not a directory, or is not writable"; LOG_INTERN(LogLevel::Error) << prefix << " directory " << directory << " is not writable (code " << ret << ")"; return false; } return true; } Loading
sim/src/core/opSimulation/framework/main.cpp +37 −12 Original line number Diff line number Diff line Loading @@ -45,11 +45,19 @@ static void SetupLogging(const std::filesystem::path& executionPath, LogLevel logLevel, const std::string& logFileString); //----------------------------------------------------------------------------- //! \brief Check several parameters of a directory //! \param directory //! \param prefix for readable logging in case of an error //! \return true, if everything directory exists and really is a directory, false otherwise //----------------------------------------------------------------------------- static bool CheckDir(const std::string& directory, const std::string& prefix); //----------------------------------------------------------------------------- //! \brief Check several parameters of a readable directory //! \param directory //! \param prefix for readable logging in case of an error //! \return true, if everything is allright //! \return true, if \c CheckDir returns true and the directory is readable, false otherwise //----------------------------------------------------------------------------- static bool CheckReadableDir(const std::string& directory, const std::string& prefix); Loading @@ -57,7 +65,7 @@ static bool CheckReadableDir(const std::string& directory, const std::string& pr //! \brief Check several parameters of a writeable directory //! \param directory //! \param prefix for readable logging in case of an error //! \return true, if everything is allright //! \return true, if \c CheckDir returns true and the directory is writable, false otherwise //----------------------------------------------------------------------------- static bool CheckWritableDir(const std::string& directory, const std::string& prefix); Loading Loading @@ -265,32 +273,49 @@ bool PrepareDirectoriesAndLogging(const openpass::core::Directories& directories return statusConfig && statusLibrary && statusOutput; } bool CheckReadableDir(const std::string& directory, const std::string& prefix) bool CheckDir(const std::string& directory, const std::string& prefix) { namespace fs = std::filesystem; const fs::path dir(directory); if (!fs::exists(dir) || !fs::is_directory(dir) || access(directory.c_str(), R_OK)) if (!fs::exists(dir)) { LOG_INTERN(LogLevel::Error) << prefix << " directory " << directory << " does not exist, is not a directory, or is not readable"; LOG_INTERN(LogLevel::Error) << prefix << " directory " << directory << " does not exist"; return false; } if (!fs::is_directory(dir)) { LOG_INTERN(LogLevel::Error) << prefix << " directory " << directory << " is not a directory"; return false; } return true; } bool CheckWritableDir(const std::string& directory, const std::string& prefix) bool CheckReadableDir(const std::string& directory, const std::string& prefix) { namespace fs = std::filesystem; CheckDir(directory, prefix); const fs::path dir(directory); if (int ret = access(directory.c_str(), R_OK)) { LOG_INTERN(LogLevel::Error) << prefix << " directory " << directory << " is not readable (code " << ret << ")"; return false; } return true; } bool CheckWritableDir(const std::string& directory, const std::string& prefix) { CheckDir(directory, prefix); if (!fs::exists(dir) || !fs::is_directory(dir) || access(directory.c_str(), W_OK)) if (int ret = access(directory.c_str(), W_OK)) { LOG_INTERN(LogLevel::Error) << prefix << " directory " << directory << " does not exist, is not a directory, or is not writable"; LOG_INTERN(LogLevel::Error) << prefix << " directory " << directory << " is not writable (code " << ret << ")"; return false; } return true; }