Come posso rinominare un file con lo chef?Il modo migliore per rinominare un file con lo chef
Nel chef doc ho trovato solo:
- creare
- create_if_missing
- eliminare
- tocco
Come posso rinominare un file con lo chef?Il modo migliore per rinominare un file con lo chef
Nel chef doc ho trovato solo:
Usa ruby_block e dentro uso :: File.Rename (src, dst). Il framework Chef non ha la rinomina del file (o almeno non lo era fino a 0.10.18).
Solo un esempio:
ruby_block "Rename file" do
block do
::File.rename(new_resource.src,new_resource.dst)
end
end
Un'altra opzione se avete bisogno di rinominare più file. Controlla una delle risorse per sapere se è già stata eseguita.
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
Mi stavo solo chiedendo ... Questo è idivotente? Voglio dire ... Cosa succede quando questo viene eseguito una seconda volta e 'new_resource.src' non esiste più? – cassianoleal
Fallirà. Questo è solo un esempio. Dovresti assicurarti per i file dal disco. – Sacx
non ti basta mettere una guardia? come in 'only_if {File.exists? (new_resource.src)}' –