读取多个TOML配置文件(.d /目录支持)

时间:2019-04-30 11:04:48

标签: c++ linux configuration-files toml cpptoml

我正在考虑将公司中各种Linux应用程序的配置文件切换为TOML。 INI样式格式与类似JSON的值的融合很有吸引力。

[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00 # First class dates

[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true

我如何支持允许在.d目录中插入配置文件的现代Linux范例?例如,我希望能够同时阅读/etc/app.conf/etc/app.d/*。理想情况下,我不会将应用程序代码暴露给配置数据来自多个文件的事实。我不想每次查看配置值时都必须遍历所有文件。

由于TOML禁止重复设置,因此似乎很难。我不能简单地将多个TOML文件连接成一个大文件。

  

多次定义密钥是无效的。

     
# DO NOT DO THIS
name = "Tom"
name = "Pradyun"

这些是C ++程序。 cpptoml库看起来最有前途,但我愿意使用任何库。 cpptoml确实执行了无复制策略。例子:

throw_parse_exception("Key " + key + " already present");
throw_parse_exception("Key " + full_ta_name + " already exists as a value");
throw_parse_exception("Redefinition of table " + full_table_name);

0 个答案:

没有答案