pomohoro-0.1.2.4: src/Settings.hs
module Settings where
import Protolude
import Data.Configurator
import System.Directory
import qualified Network.Socket as Socket (PortNumber)
data Settings = Settings
{ _sessionLength :: Int
, _defaultAccount :: Text
, _timeclockPath :: FilePath
, _udpPort :: Socket.PortNumber
}
loadSettings :: IO Settings
loadSettings = do
home <- getHomeDirectory
config <- load [Optional (home <> "/.pomohoro.cfg")]
Settings
<$> lookupDefault 25 config "session-length"
<*> lookupDefault "work" config "default-account"
<*> lookupDefault (home <> "/.pomohoro.timeclock") config "timeclock-file"
<*> fmap fromInteger (lookupDefault 8712 config "port")