Manager: Search config file recursively from the working directory
This commit is contained in:
@@ -12,8 +12,27 @@ Config::Config(s)
|
||||
: m_workingDirectory(std::filesystem::current_path())
|
||||
, m_workingDirectorySize(m_workingDirectory.string().size())
|
||||
{
|
||||
findConfigFile();
|
||||
}
|
||||
|
||||
Config::~Config()
|
||||
{
|
||||
}
|
||||
|
||||
// -----------------------------------------
|
||||
|
||||
void Config::findConfigFile()
|
||||
{
|
||||
std::string configFileName = "manafiles.json";
|
||||
|
||||
for (const auto& path : std::filesystem::recursive_directory_iterator { m_workingDirectory }) {
|
||||
const auto& file = path.path().string();
|
||||
if (file.find(configFileName) + configFileName.size() == file.size()) {
|
||||
m_config = file;
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
printf("Found config file @ %s\n", m_config.c_str() + m_workingDirectorySize + 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -24,10 +24,14 @@ public:
|
||||
bool verbose() const { return m_verbose; }
|
||||
|
||||
private:
|
||||
void findConfigFile();
|
||||
|
||||
bool m_verbose { false };
|
||||
|
||||
std::filesystem::path m_workingDirectory {};
|
||||
size_t m_workingDirectorySize { 0 };
|
||||
|
||||
std::filesystem::path m_config;
|
||||
};
|
||||
|
||||
#endif // CONFIG_H
|
||||
|
||||
Reference in New Issue
Block a user