我有一个像这样被丢弃的厨师模板列表:
scripts.each do |script|
template "#{dir}/{script}.py" do
variables({ "keys" => keys })
end
end
每个模板都输出一个python脚本。其中一个脚本有点要求。由于我们运行的脚本从服务器更改为服务器,因此我不能简单地在所有服务器上进行pip安装。我试过这样做:
<%
python_pip "python-dateutil" do
virtualenv "/path/to/env"
version "2.2"
end
%>
from dateutil import parser
然而,厨师模板中不可能出现这种情况,厨师抱怨python_pip
不是真正的方法。什么是最好,最优雅,最干净的方式呢?
答案 0 :(得分:2)
使脚本成为哈希:
{
'script1.py' => [],
'script2.py' => %w{dep1 dep2},
}.each do |script, deps|
deps.each do |dep|
python_pip dep do
#stuff
end
end
template "#{dir}/{script}.py" do
variables({ "keys" => keys })
end
end
这样可以保留配方所属的所有逻辑。