2017-08-02 1 views
0

私は3つのymlファイル0.yml、1.yml、および2.ymlを持っています。ymlの上にコードがあると、Spiffが正しく機能しない

その内容は次のとおりです。

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マージ0.yml 1を行う場合。 ym 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 
%> 

次に正常に動作します。しかし、私はそれが欲しい。私はそれをどのように機能させるのですか?

答えて

0

2種類のテンプレートツールが混乱しています。 0.ymlは実際にspiff形式ですが、1.ymlERBspiffを使用しています。 spiffはERBを処理する方法を知らないため、それがあなたのために働いていない理由です。この問題を解決するには、1つのテンプレートスタイル(spiffまたはERB)を選択し、すべてのファイルを正しい形式に変換し、丁寧なエンジンを使用してファイルを生成する必要があります。私はspiffよりもERBを提案するほうがはるかに優れており、より強力であることを示しています。

関連する問題