diff options
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/util/MiscExtensions.kt')
-rw-r--r-- | src/main/kotlin/io/dico/parcels2/util/MiscExtensions.kt | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/util/MiscExtensions.kt b/src/main/kotlin/io/dico/parcels2/util/MiscExtensions.kt index 7a2504d..877d1cc 100644 --- a/src/main/kotlin/io/dico/parcels2/util/MiscExtensions.kt +++ b/src/main/kotlin/io/dico/parcels2/util/MiscExtensions.kt @@ -4,14 +4,20 @@ import io.dico.parcels2.logger import java.io.File fun File.tryCreate(): Boolean { + if (exists()) { + return !isDirectory + } val parent = parentFile if (parent == null || !(parent.exists() || parent.mkdirs()) || !createNewFile()) { - logger.warn("Failed to create file ${canonicalPath}") + logger.warn("Failed to create file $canonicalPath") return false } return true } +inline fun Boolean.alsoIfTrue(block: () -> Unit): Boolean = also { if (it) block() } +inline fun Boolean.alsoIfFalse(block: () -> Unit): Boolean = also { if (!it) block() } + inline fun <R> Any.synchronized(block: () -> R): R = synchronized(this, block) inline fun <T> T?.isNullOr(condition: T.() -> Boolean): Boolean = this == null || condition() |