diff options
Diffstat (limited to 'src/Model/Conf.hs')
-rw-r--r-- | src/Model/Conf.hs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/Model/Conf.hs b/src/Model/Conf.hs new file mode 100644 index 0000000..0763cd8 --- /dev/null +++ b/src/Model/Conf.hs @@ -0,0 +1,25 @@ +{-# LANGUAGE OverloadedStrings #-} + +module Model.Conf + ( getConf + , Conf(..) + ) where + +import Data.Text (Text) +import qualified Data.ConfigManager as Conf + +data Conf = Conf + { mailTo :: Text + , mailFrom :: Text + , dayForNextWeekNotification :: Text + } deriving (Read, Eq, Show) + +getConf :: FilePath -> IO (Either Text Conf) +getConf path = + (flip fmap) (Conf.readConfig path) (\configOrError -> do + conf <- configOrError + Conf <$> + Conf.lookup "mailTo" conf <*> + Conf.lookup "mailFrom" conf <*> + Conf.lookup "dayForNextWeekNotification" conf + ) |