2016-09-26 4 views
0

У меня есть структура папок, как это:Шеф: как рекурсивно удалить все файлы, сохраняя при этом некоторые файлы

/app 
    /uploads 
     1.pdf 
     2.pdf 
     /2015 
     /2016 
     /2017 
     ...... 
    /requirements 
    /tests 
    manage.py 
    ...... 

я использовал, чтобы рекурсивно удалить app словарь. Теперь я хотел бы сохранить все складки и файлы в них в uploads, например. /2015, /2016, /2016/oct.pdf. Также удалите 1.pdf и 2.pdf.

# remove the code folder if exists 
directory node['conf-cookbook']['app_dir'] do 
    recursive true 
    action :delete 
    only_if { ::File.directory?("#{ PATH }") } 
end 

Как построить охранники для достижения моей цели?

ответ

0

Это не то, что может сделать ресурс каталога. Предохранительные правила управляют, если весь ресурс активируется или нет, они не являются вето на позиции при сближении. Вам нужно будет создать собственный ресурс или просто использовать что-то вроде execute "find #{node['conf-cookbook']['app_dir']} -somefilter -delete" и не заботиться о том, чтобы он не был идемпотентным.