当我在yml上面有代码时,Spiff无法正常工作

时间:2017-08-02 10:49:45

标签: erb templating

我有3个yml文件0.yml,1.yml和2.yml。

他们的内容如下。

0.yml

name: (( merge ))
director_uuid: (( merge ))
foo1: (( merge ))

1.yml

<%
  director_uuid = `bosh status --uuid 2>/dev/null`.strip
%>
---
name: service-fabrik
director_uuid: <%= director_uuid %>
foo1: (( merge ))

2.yml

foo1: bar1

如果我做spiff merge 0.yml 1.yml 2.yml&gt; 3.yml然后3.yml看起来像这样。

foo1: bar1

我希望它如下:

name: service-fabrik
director_uuid: jfheifefefif
foo1: bar1

但它不起作用。如果我从1.yml中删除代码部分

<%
  director_uuid = `bosh status --uuid 2>/dev/null`.strip
%>

然后它正常工作。但我想要它。我如何使它工作?

1 个答案:

答案 0 :(得分:0)

你混淆了两种模板工具。 0.yml确实采用spiff格式,但1.yml正在使用ERBspiffspiff不知道如何处理ERB,这就是为什么它不适合你。要解决此问题,您必须选择一种模板样式(spiffERB),将所有文件转换为正确的格式,并使用尊重的引擎生成文件。我会建议ERB超过spiff,因为它更好地记录和强大。