diff --git a/website/scripts/cleaner.groovy b/website/scripts/cleaner.groovy index 7e927d8c..beb4af88 100644 --- a/website/scripts/cleaner.groovy +++ b/website/scripts/cleaner.groovy @@ -26,8 +26,11 @@ def clean(f) { } +// memoize media folder status for performance +def hasMediaFiles = { dir -> dir.getFiles().find{ (it.isVideo() || it.isAudio()) && !isClutter(it) } }.memoize() + // delete clutter files in orphaned media folders -args.getFiles{ isClutter(it) && !it.dir.getFiles().find{ (it.isVideo() || it.isAudio()) && !isClutter(it) }}.each { clean(it) } +args.getFiles{ isClutter(it) && !hasMediaFiles(it.dir) }.each { clean(it) } // delete empty folders but exclude given args args.getFolders().sort().reverse().each { if (it.listFiles().length == 0) { if (deleteRootFolder || !args.contains(it)) clean(it) } }