jp.nephy.kchroner.plugin.PluginFileWatcher.kt Maven / Gradle / Ivy
package jp.nephy.kchroner.plugin
import io.methvin.watcher.DirectoryChangeEvent
import io.methvin.watcher.DirectoryWatcher
import jp.nephy.kchroner.KChroner
import java.io.Closeable
import java.nio.file.Path
private val logger = KChroner.logger("KChroner.PluginFileWatcher")
class PluginFileWatcher private constructor(private val watcher: DirectoryWatcher): Closeable {
companion object {
fun build(directory: Path, listener: (DirectoryChangeEvent) -> Unit): PluginFileWatcher {
return PluginFileWatcher(DirectoryWatcher.builder().path(directory).listener(listener).build())
}
}
fun start() {
logger.debug { "PluginFileWatcherが開始されました." }
watcher.watchAsync()
}
override fun close() {
watcher.close()
logger.debug { "PluginFileWatcherが終了しました." }
}
}