Eye*_*Eye 7 ruby io chef-infra
因为我遇到了我向Mixlib团队报告的MIXLIB-11错误,我需要找一个散步,替代Mixlib :: Shellout.
简要说明问题:
这是一个声明"*毫不奇怪 - 读取是在编译时发生的,但remote_file资源实际上是在执行时创建的.**"
由于此功能,Mixlib::Shellout.new("ls", :cwd => '/opt/cubrid/share/webmanager')引发" 无此类文件或目录 "错误,即使该目录是在执行时由此当前配方中包含的先前配方创建的.
有没有办法在执行时读取文件/目录?
Eye*_*Eye 14
找到答案:将代码包装好ruby_block,并在运行时执行.
ruby_block "Check if CURBID Web Manager needs installation" do
block do
version = ""
if File.exists?("#{CWM_HOME_DIR}/appLoader.js")
# Read the CWM version from file.
f = File.open("#{CWM_HOME_DIR}/appLoader.js")
pattern = /Ext\.cwm\.prodVersion = '(\d+\.\d+\.\d+\.\d+)'/
f.each {|line|
if match = pattern.match(line)
version = match[1]
break
end
}
f.close
end
end
end
Run Code Online (Sandbox Code Playgroud)
现在,从上一个配方中创建的文件中正确填充版本.
| 归档时间: |
|
| 查看次数: |
11816 次 |
| 最近记录: |