2012-11-23 1 views

답변

9

사용 ruby_block 사용 내부 :: File.Rename을 (삭제 create_if_missing 만들 SRC, DST). 요리사 프레임 워크에는 파일 이름 바꾸기가 없습니다 (또는 적어도 0.10.18까지 없었습니다). 그냥 예를

:

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

저는이 멱등수입니까? 제 말은 ... 이것이 두번째로 돌아가고 new_resource.src가 더 이상 존재하지 않으면 어떻게 될까요? – cassianoleal

+1

실패합니다. 이것은 단지 예일뿐입니다. 디스크의 파일을 확인해야합니다. – Sacx

+1

경비원을 배치하지 않겠습니까? 'only_if {File.exists? (new_resource.src)}' –

1

여러 파일의 이름을 변경해야하는 경우 또 다른 옵션을 선택합니다. 자원 중 하나가 이미 실행되었는지 여부를 확인합니다.

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