init: settings, do not load auto-generated warning msg

The settings warning message is meant to be used only to discourage
users from modifying the file manually. Therefore, there is no need
to keep it in memory.
This commit is contained in:
furszy 2024-01-23 21:01:32 -03:00
parent e69796c79c
commit 987a1b51ee
No known key found for this signature in database
GPG Key ID: 5DD23CCC686AA623

View File

@ -31,6 +31,9 @@ enum class Source {
CONFIG_FILE_DEFAULT_SECTION CONFIG_FILE_DEFAULT_SECTION
}; };
// Json object key for the auto-generated warning comment
const std::string SETTINGS_WARN_MSG_KEY{"_warning_"};
//! Merge settings from multiple sources in precedence order: //! Merge settings from multiple sources in precedence order:
//! Forced config > command line > read-write settings file > config file network-specific section > config file default section //! Forced config > command line > read-write settings file > config file network-specific section > config file default section
//! //!
@ -112,6 +115,10 @@ bool ReadSettings(const fs::path& path, std::map<std::string, SettingsValue>& va
break; break;
} }
} }
// Remove auto-generated warning comment from the accessible settings.
values.erase(SETTINGS_WARN_MSG_KEY);
return errors.empty(); return errors.empty();
} }
@ -120,12 +127,9 @@ bool WriteSettings(const fs::path& path,
std::vector<std::string>& errors) std::vector<std::string>& errors)
{ {
SettingsValue out(SettingsValue::VOBJ); SettingsValue out(SettingsValue::VOBJ);
// Add auto-generated warning comment only if it does not exist // Add auto-generated warning comment
if (!values.contains("_warning_")) { out.pushKV(SETTINGS_WARN_MSG_KEY, strprintf("This file is automatically generated and updated by %s. Please do not edit this file while the node "
out.pushKV("_warning_", strprintf("This file is automatically generated and updated by %s. Please do not edit this file while the node " "is running, as any changes might be ignored or overwritten.", PACKAGE_NAME));
"is running, as any changes might be ignored or overwritten.",
PACKAGE_NAME));
}
// Push settings values // Push settings values
for (const auto& value : values) { for (const auto& value : values) {
out.pushKVEnd(value.first, value.second); out.pushKVEnd(value.first, value.second);