view src/name/blackcap/imageprep/Settings.kt @ 1:0bded24f746e

Compiles, still untested.
author David Barts <n5jrn@me.com>
date Thu, 16 Jul 2020 21:51:08 -0700
parents e0efe7848130
children a6f9b51d5e8d
line wrap: on
line source

/*
 * Our settings. Basically just some parsed properties.
 */
package name.blackcap.imageprep

import java.io.File

/* work around name shadowing */
private val _PROPS = PROPERTIES

object Settings {
    private var homeDir = System.getProperty("user.home")
    val maxDimension = _PROPS.getProperty("maxDimension").toInt()
    val outputQuality = _PROPS.getProperty("outputQuality").toInt()
    val outputSuffix = tilde(_PROPS.getProperty("outputSuffix"))
    val outputTo = tilde(_PROPS.getProperty("outputTo"))
    val outputToInputDir = strToBool(_PROPS.getProperty("outputToInputDir"))

    private fun tilde(s: String): String {
        if (s.isNullOrEmpty())
            return homeDir
        if (s.startsWith("~/") || s.startsWith("~\\"))
            return File(homeDir, s.substring(2).trimStart(s[1])).toString()
        else
            return s
    }

    private fun strToBool(s: String): Boolean {
        if (s.isNullOrEmpty())
            return false
        val c1 = s[0].toLowerCase()
        return c1 == 't' || c1 == 'y'
    }
}