我正在考虑将公司中各种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);