view src/name/blackcap/imageprep/Settings.kt @ 4:5234e4500d45

Command-line arguments (only partially tested).
author David Barts <n5jrn@me.com>
date Fri, 17 Jul 2020 14:51:41 -0700
parents a6f9b51d5e8d
children 884f1415a330
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 val homeDir = System.getProperty("user.home")
    var maxDimension = _PROPS.getProperty("maxDimension").toInt()
    var outputQuality = _PROPS.getProperty("outputQuality").toInt()
    var outputSuffix = _PROPS.getProperty("outputSuffix")
    var outputTo = tilde(_PROPS.getProperty("outputTo"))
    var 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'
    }
}