diff --git a/website/scripts/amc.groovy b/website/scripts/amc.groovy index cccc3643..c1046639 100644 --- a/website/scripts/amc.groovy +++ b/website/scripts/amc.groovy @@ -92,23 +92,18 @@ if (args.empty) { input = input.flatten() // extract archives (zip, rar, etc) that contain at least one video file +def extractedArchives = [] def tempFiles = [] input = input.flatten{ f -> if (f.isArchive() || f.hasExtension('001')) { def extractDir = new File(f.dir, f.nameWithoutExtension) def extractFiles = extract(file: f, output: new File(extractDir, f.dir.name), conflict: 'skip', filter: { it.isArchive() || it.isVideo() || it.isSubtitle() || (music && it.isAudio()) }, forceExtractAll: true) ?: [] - tempFiles += extractDir - tempFiles += extractFiles - - if (deleteAfterExtract) { - _log.finest("Mark archive for deletion: $f") - f.deleteOnExit() - f.dir.listFiles().toList().findAll{ v -> v.name.startsWith(f.nameWithoutExtension) && v.extension ==~ /r\d+/ }.each{ v -> - _log.finest("Mark volume for deletion: $v") - v.deleteOnExit() - } + + if (extractFiles.size() > 0) { + extractedArchives += f + tempFiles += extractDir + tempFiles += extractFiles } - return extractFiles } return f @@ -347,6 +342,17 @@ if (gmail) { ) } +if (deleteAfterExtract) { + extractedArchives.each{ a -> + _log.finest("Delete archive $a") + a.delete() + a.dir.listFiles().toList().findAll{ v -> v.name.startsWith(a.nameWithoutExtension) && v.extension ==~ /r\d+/ }.each{ v -> + _log.finest("Delete archive volume $v") + v.delete() + } + } +} + // clean empty folders, clutter files, etc after move if (clean) { if (['COPY', 'HARDLINK'].find{ it.equalsIgnoreCase(_args.action) } && tempFiles.size() > 0) {