0

我正在尝试从 .tpl 和一些 .def 文件生成 docker 文件,只要不需要做出任何决定,autogen 就可以很好地完成工作。但是,当我有一些需要评估的条件时,我的文件会在不考虑条件的情况下生成。

例如,我有以下自动生成模板(.tpl):

RUN [+ PKGMAN +] -y install clang cmake doxygen graphviz  

[+IF PKGMAN == "yum" +]
RUN [+ PKGMAN +] -y install pkgconfig 
[+ENDIF+]

[+IF PKGMAN == apt-get +]
RUN [+ PKGMAN +] -y install pkg-config
[+ENDIF+]

以及以下定义文件(.def):

autogen definitions oscxx;
OSNAME = ubuntu;
OSVER = "16.04";
PKGMAN = "apt-get";

因为PKGMAN = apt-get,我希望输出仅包含第二个 if-condition 中包含的语句。但是,我越来越

RUN apt-get -y install clang cmake doxygen graphviz  

RUN apt-get -y install pkgconfig 

RUN apt-get -y install pkg-config

所以 PKGMAN 被正确地替换为“apt-get”,但在我的 IF 宏中它没有被评估。我想我应该尝试一下 [+IF [+PKGMAN+] == "apt-get" +] ,但是当我这样做时,我被提醒不能嵌套宏。

让这个 IF 工作的正确语法是什么?提前致谢

4

0 回答 0