ruby – 如何在执行时读取文件内容?厨师在编译时读取
发布时间:2020-12-17 04:18:04 所属栏目:百科 来源:网络整理
导读:因为我遇到了我向Mixlib团队报告的这个 MIXLIB-11错误,我需要找一个散步,替代Mixlib :: Shellout. 简要说明问题: Here是一个声明,“*毫不奇怪 – 读取是在编译时发生的,但remote_file资源实际上是在执行时创建的.**” 由于此功能,Mixlib :: Shellout.new(“
因为我遇到了我向Mixlib团队报告的这个
MIXLIB-11错误,我需要找一个散步,替代Mixlib :: Shellout.
简要说明问题: Here是一个声明,“*毫不奇怪 – 读取是在编译时发生的,但remote_file资源实际上是在执行时创建的.**” 由于此功能,Mixlib :: Shellout.new(“ls”,:cwd =>’/ opt / cubrid / share / webmanager’)引发“无此类文件或目录”错误,即使该目录是在执行时创建的通过当前配方中包含的先前配方. 有没有办法在执行时读取文件/目录? 解决方法
找到答案:将代码包装在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 现在,从上一个配方中创建的文件正确填充版本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |