2011-09-28 76 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