2013-04-17 154 views
1

我正在設置一個使用Pogo的自動部署系統。它將加密軟件包的密碼短語存儲在yaml文件中。然而,我遇到了一個問題,雖然包名稱在yaml文件中的正確密碼短語中,但沒有被拾取,因爲包名稱附有版本號。yaml中可以使用通配符嗎?

例如,YAML文件看起來是這樣的:

somesoftwarepackage: apassphrase 

自動部署正在安裝的實際包的名字將會像在:

somesoftwarepackage-1.0.23 

然後部署凍結在這一點等待通行短語。

是否可以在yaml中使用通配符,以便我可以放置通用包名稱,但不必指定(然後不斷更新)特定版本?

回答

4

我認爲答案是否定的,YAML不能做字符串連接,或者任何其他生成或操縱數據。

與變量或通配符最接近的是錨點,它更像以前指定的數據的別名。我想你可以做這樣的事情:

pkg_name: &name my_pkg 
pkg_version: &version 1.0.23 
pkg_fullname: [ *name, '-', *version ] 

,這樣你至少有記錄了軟件包名稱格式(${name}-${version}),並操縱pkg_fullname成一個字符串(例如,''.join(pkg_fullname)在Python)。但對原始數據進行這些操作可能同樣簡單。

+0

謝謝,這太糟糕了。 –

相關問題