package net.taehui.twilight.system import net.taehui.twilight.Logger import java.io.IOException import java.nio.channels.FileChannel import java.nio.file.Files import java.nio.file.Path import java.nio.file.StandardOpenOption import kotlin.system.exitProcess object PIDClass : Logger { private val FILE_PATH: Path = Path.of("Twilight.#") private var fc: FileChannel? = null fun doHaveIt() { try { fc = FileChannel.open( FILE_PATH, StandardOpenOption.CREATE, StandardOpenOption.WRITE, StandardOpenOption.READ ) try { fc?.lock() } catch (e: IOException) { logFault(e) } } catch (e: IOException) { logInfo("Twilight is already running") exitProcess(1) } } fun dispose() { fc?.close() Files.deleteIfExists(FILE_PATH) } }