From 99a6eb916eae4d4c1f2e33ae4e93407b822978ae Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Fri, 12 Jul 2013 22:04:49 +0000 Subject: [PATCH] * performance boost for dealing with large structures --- website/scripts/cleaner.groovy | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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) } }