2012-11-23 15 views

cevap

9

Kullanım ruby_block ve kullanım iç :: File.Rename (silme create_if_missing oluşturmak src, dst). Şef çerçevesinde dosya yeniden adlandırılmamış (veya en az 0.10.18'e kadar) bulunmuyor. Sadece bir örnek

:

ruby_block "Rename file" do 
    block do 
    ::File.rename(new_resource.src,new_resource.dst) 
    end 
end 
+2

Sadece merak ediyorum ... Bu idempotent mi? Demek istediğim ... Bu ikinci kez çalıştırıldığında ve "new_resource.src" artık mevcut değilse ne olur? – cassianoleal

+1

Başarısız olacak. Bu sadece bir örnektir. Diskten dosyalar için kendinizi temin etmelisiniz. – Sacx

+1

Bir bekçi yerleştirmez miydin? 'only_if {File.exists? (new_resource.src)} ' –

1

Eğer birden fazla dosya yeniden adlandırmak gerekirse bir başka seçenek. Zaten çalışıp çalışmadığını öğrenmek için kaynaklardan birini kontrol eder.

ruby_block "Rename file" do 
    block do 
    ::Dir.glob("*/*.src").each {|i| File.rename(i, i.gsub(/(.*).src/,'\\1.dst'))}; 
    end 
    not_if {File.exists?("new_resource.dst")} 
end 
İlgili konular