2011-09-28 95 views
0

中的conf文件我有一个的conf文件的格式为:自动生成化妆

名称=值

我想使用模板的基础上,在其他一些价值观产生的结果做什么文件。

因此,例如,说我有一个名为PATHS包含

CONF_DIR=/etc 
BIN_DIR=/usr/sbin 
LOG_DIR=/var/log 
CACHE_DIR=/home/cache 

此路径下的文件被纳入一个Makefile所以,当我打电话让安装创建的路径和内置的应用程序和conf文件复制适当。

现在我也有一个我想用作模板的conf文件。

说出模板包含像

日志文件= $(LOG_DIR)/myapp.log 线...

然后生成,将有

=日志文件在/ var /日志目的地的conf /myapp.log ... etc

我认为这可以用sed脚本完成,但我对sed和正则表达式语法不是很熟悉。我也会接受一个shell脚本版本。

回答

0

你一定要去autoconf这里,他们的工作就是做这件事。你必须写一个conf.in文件,其中所有的替换都用@标记,例如,

[email protected]@ 
[email protected]@ 

并写出一个configure.ac,这是一个shell脚本,将为您执行这些替换并创建conf。 conf随后被包含在Makefile中。我甚至建议使用Makefile.in文件,即将您的代码片段包含在Makefile中。

如果你保持标准的路径名,你的configure.ac是一个四线程,并具有GNU兼容(易于理解&使用)的附加优势。

0

您可能需要考虑将using m4作为简单的模板语言。

+0

既然你让我看着m4,我就开始看着自动工具。也许我可以勾起那个?有任何想法吗? – Matt

+0

好吧,我认为m4是一种去自动工具生成的方式。只需要弄清楚如何。我会作为一个单独的问题提出这个问题。 – Matt

+0

如果有人有更好的主意,我会暂时解决这个问题。 – Matt