pgdl-6.3: src/Getconfig.hs
{-# LANGUAGE OverloadedStrings #-}
module Getconfig where
import qualified Data.Text as T
import qualified Data.Configurator as C
import Control.Monad
import Data.Maybe
getConfig :: IO (T.Text, T.Text, T.Text, T.Text)
getConfig = do
config <- C.load [C.Required "$(HOME)/.pgdl"]
username <- C.lookup config "username"
password <- C.lookup config "password"
servpath <- C.lookup config "servpath"
localdir <- C.lookup config "localdir"
mapM_ (\x -> when (isNothing x) $ error "please edit config file.") [username, password, servpath, localdir]
return (fj username, fj password, fj servpath, fj localdir)
where fj = fromJust
getUsername = fmap (\(r, _, _, _) -> r) getConfig
getPassword = fmap (\(_, r, _, _) -> r) getConfig
getServpath = fmap (\(_, _, r, _) -> r) getConfig
getLocaldir = fmap (\(_, _, _, r) -> r) getConfig