From 6269f625e33f5cf8f5b22eee8047151b9c3f07d7 Mon Sep 17 00:00:00 2001 From: bskjon Date: Sat, 15 Feb 2025 02:50:57 +0100 Subject: [PATCH] Watching multiple directories 4 --- .../coordinator/watcher/InputDirectoryWatcher.kt | 14 ++++++++++++-- .../iktdev/mediaprocessing/shared/common/Utils.kt | 8 +++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/watcher/InputDirectoryWatcher.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/watcher/InputDirectoryWatcher.kt index 6e792ee1..4f680413 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/watcher/InputDirectoryWatcher.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/watcher/InputDirectoryWatcher.kt @@ -11,6 +11,7 @@ import no.iktdev.mediaprocessing.coordinator.* import no.iktdev.mediaprocessing.shared.common.SharedConfig import no.iktdev.mediaprocessing.shared.common.contract.ProcessType import no.iktdev.mediaprocessing.shared.common.extended.isSupportedVideoFile +import no.iktdev.mediaprocessing.shared.common.ifNotEmpty import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import java.io.File @@ -52,8 +53,17 @@ class InputDirectoryWatcher(@Autowired var coordinator: Coordinator): FileWatche suspend fun watchFiles() { log.info { "Starting Watcher" } - val dirs = watchDirectories.joinToString("\n\t") { it.absolutePath } - log.info { "Watching directories: $dirs" } + val dirs = watchDirectories.filter { it.exists() && it.isDirectory } + if (dirs.isNotEmpty()) { + val paths = dirs.joinToString("\n\t") { it.absolutePath } + log.info { "Watching directories:\n\t $paths" } + } + + //val errorConfiguredDirs = watchDirectories.filter { !it.isDirectory || !it.exists()}.joinToString("\n\t") { it.absolutePath } + watchDirectories.filter { !it.isDirectory || !it.exists()}.ifNotEmpty { + val errorConfiguredDirs = it.joinToString("\n\t") { it.absolutePath } + log.error { "Failed to initialize watcher for the following: \n\t $errorConfiguredDirs" } + } for (folder in watchDirectories) { startWatchOnDirectory(folder) } diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/Utils.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/Utils.kt index 67b6d28e..239f6887 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/Utils.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/Utils.kt @@ -130,4 +130,10 @@ fun File.moveTo(destinationFile: File, onProgress: (Double) -> Unit = {}): Boole } return true -} \ No newline at end of file +} + +fun List.ifNotEmpty(block: (List) -> Unit) { + if (this.isNotEmpty()) { + block(this) + } +}