Properly merge in the default settings.

This commit is contained in:
David Given
2021-07-20 20:24:18 +02:00
parent 3926de3fa1
commit 1f9aaf1ac0

View File

@@ -183,19 +183,21 @@ void FlagGroup::parseFlagsWithConfigFiles(int argc, const char* argv[],
parseFlags(argc, argv,
[&](const auto& filename) {
const auto& it = configFiles.find(filename);
std::string data;
if (it != configFiles.end())
{
if (!config.ParseFromString(it->second))
Error() << "couldn't load config proto";
}
data = it->second;
else
{
std::ifstream f(filename, std::ios::out);
if (f.fail())
Error() << fmt::format("Cannot open '{}': {}", filename, strerror(errno));
if (!config.ParseFromIstream(&f))
Error() << "couldn't load config proto";
std::ostringstream ss;
ss << f.rdbuf();
data = ss.str();
}
if (!config.MergeFromString(data))
Error() << "couldn't load config proto";
return true;
}