我有一個資源看起來如下:如果目錄爲空,如何不執行廚師資源?
execute 'run_command' do
command "chown -R user:user * "
not_if Dir["/home/user/dir1/*"].empty?
end
我要確保不執行資源,如果/home/user/dir1
是空
我有一個資源看起來如下:如果目錄爲空,如何不執行廚師資源?
execute 'run_command' do
command "chown -R user:user * "
not_if Dir["/home/user/dir1/*"].empty?
end
我要確保不執行資源,如果/home/user/dir1
是空
只是關閉標準錯誤。例如:
execute 'chown a directory' do
command 'chown -R user:group /path/to/directory 2>&-'
end
從冪等的角度來看這是一個非常糟糕的風格(原因,爲什麼@meallhour正在尋找一個有效的後衛)。 – StephenKing
@StephenKing謝謝你的自行車脫落。請查閱「銜接」。我不會再爭辯,但歡迎您爲OP做出自己的回答。 –
我無法在我所擁有的時間內重現問題。這就是爲什麼我沒有留下回答。由於你似乎沒有意識到廚師的這方面,我試圖讓你意識到這一點儘可能友好。 – StephenKing
試試這個:
not_if { Dir.entries("/home/user/dir1/").select {|entry| ::File.join("home","user","dir1",entry) and !(entry =='.' || entry == '..') }.empty? }
你不會真正節省那麼多的時間; chown很快。爲什麼這有關係? –
當目錄爲空時,該命令不起作用並拋出錯誤 – meallhour
錯誤是什麼? – StephenKing