是否有一个动态/即时文本文件模板引擎,可以在文件系统级别上工作,例如通过熔断器,以与 Web 服务器 html 模板引擎类似的方式?
假设您有一个/etc/hostapd/hostapd.conf
AP 配置文件,如下所示
# On-the-fly AP configuration for any interface
interface={{dev}}
ssid="AwesomeNetwork-{{dev}}"
...
现在我/etc/hostapd/
用我的酷(保险丝)fs 将文件夹(甚至只是一个文件)安装到/etc/hostapd-dyn
:
mount -t template-fuse /etc/hostapd /etc/hostapd-dyn
该文件/etc/hostapd-dyn/hostapd.conf/dev=wlp0s2
现在将包含
# On-the-fly AP configuration for any interface
interface=wlp0s2
ssid="AwesomeNetwork-wlp0s2"
...
这样的文件系统将允许拥有动态配置文件,您甚至可能事先不知道它的一些值,但您不可能通过文件预处理器通过管道来动态创建该文件awk
/// sed
...
例如,在定义动态[email protected]
systemd
服务时,您可以使用动态变量来实际修改语句中使用的配置文件的文件内容ExecStart=
。 (好吧,您总是可以在前面添加另一个ExecStart=
创建配置文件的命令,然后在下一行中使用刚刚创建的配置文件。但在某些情况下,这不会那么优雅和不可行。)
答案1
有一个名为“dotfs”的 haskell 项目,它的功能与您所描述的类似。然而,这可能已经失效。
使用 fusionpy 将一些东西放在 python 中会很容易。我附加了一个要点(基于fusepy-base),它几乎可以满足您的要求,只需通过 bash echo 运行每个文件的内容,并相应地扩展所有内容即可。这样您还可以通过 $() 从其他程序获得动态输入。
如果你想调整它,你可以摆弄顶部的重写函数来进行更具体的(或更安全的,这可能是一个好主意)类型的变量扩展。