diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2026-04-13 22:19:37 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-13 22:19:37 +0100 |
| commit | e539d21174211dad3fa5f8f5e8496bb7e5c7baf2 (patch) | |
| tree | b4801fcf536293ed2f5f63219b911aa77bb9bf91 /src/config/legacy/ConfigManager.cpp | |
| parent | 933a24caa68d4d217207838bceabd5577838431c (diff) | |
config: fix safe mode config generation (#14024)
Diffstat (limited to 'src/config/legacy/ConfigManager.cpp')
| -rw-r--r-- | src/config/legacy/ConfigManager.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/config/legacy/ConfigManager.cpp b/src/config/legacy/ConfigManager.cpp index a1ab4e1c..ffc5cea5 100644 --- a/src/config/legacy/ConfigManager.cpp +++ b/src/config/legacy/ConfigManager.cpp @@ -987,8 +987,19 @@ void CConfigManager::reloadRuleConfigs() { std::optional<std::string> CConfigManager::verifyConfigExists() { auto mainConfigPath = Supplementary::Jeremy::getMainConfigPath(); - if (!mainConfigPath || !std::filesystem::exists(*mainConfigPath)) - return "broken config dir?"; + if (!mainConfigPath) + return "Broken config directory"; + + std::error_code ec; + const bool VALID_CFG = std::filesystem::exists(*mainConfigPath, ec) && !ec; + + if (!VALID_CFG && !g_pCompositor->m_explicitConfigPath.empty()) + return "Invalid config file provided as explicit"; + + if (!VALID_CFG) { + if (const auto res = generateDefaultConfig(*mainConfigPath, g_pCompositor->m_safeMode); !res) + return res.error(); + } return {}; } |
