好吧,让我们先说我是一个厨师菜鸟,我正在尝试将这段代码散列出来。
我在一个完整的mac商店。我正在使用 Chef 来自动化系统范围的更改。因为我是新手,所以我将它推广到我们的 Mac AV 系统上。
基本上,文件服务器上有一个具有 MAC SCREEN SAVERS 目录的文件夹。我将服务器目录本地复制到 MAC OS X /User/user_name/Pictures 目录。
所以,这就是我在厨师中得到的:
local_folder_modified = File.mtime("~/Pictures/SCREEN SAVER NEW MACS")
server_folder_modified = File.mtime("/Volumes/SERVER/SCREEN\ SAVER\ NEW\ MACS/")
if server_folder_modified != local_folder_modified
# file has changed
then
require 'fileutils'
FileUtils.cd('server_folder_modified') do
FileUtils.rm('local_folder_modified/*')
FileUtils.cp_r './*', 'local_folder_modified'
Else
end
end
无论如何,我不知道如何将“~”设置为这个食谱的运行用户。因此,如果 Comp_A 有用户 Jim_Beam 而 Comp_B 有用户 Jack_Daniels,我不想将代码设置为: ENV[HOME] = /user/jimbeam 因为它不适用于 Jack_Daniels。对?
我已经读过 file.expand 将起作用,或者 ENV,但我真的不确定什么是最好的代码来说“嘿,我想要需要这个屏幕保护程序的当前用户 - 所以将环境设置为变量所以它适用于不同的节点”。
无论如何,谢谢你的帮助。我希望我是有道理的!