【问题标题】:Spiff not working properly when I have code on top of yml当我在 yml 上有代码时,Spiff 无法正常工作
【发布时间】:2017-08-02 10:49:44
【问题描述】:

我有 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 > 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
%>

然后就可以正常使用了。但我想要它。如何让它发挥作用?

【问题讨论】:

    标签: erb templating


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多