From 389d979eb3eaa18beb8a6da9f4a03bdb6acc1722 Mon Sep 17 00:00:00 2001 From: Joris Guyonvarch Date: Sat, 18 Apr 2015 21:59:22 +0200 Subject: Parsing utag_list from a detail page and showing the keys that are given in the configuration file --- src/Config.hs | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'src/Config.hs') diff --git a/src/Config.hs b/src/Config.hs index 76371be..0a421fa 100644 --- a/src/Config.hs +++ b/src/Config.hs @@ -6,7 +6,7 @@ module Config , getConfig ) where -import Data.Maybe (catMaybes, isJust) +import Data.Maybe (catMaybes, isJust, fromMaybe) import Data.Map (Map) import qualified Data.Map as M import Data.Text (Text) @@ -18,6 +18,7 @@ import Control.Monad (guard) import System.Directory (doesFileExist) import Model.URL +import Model.Config import Utils.Text @@ -33,6 +34,7 @@ configUsage = , "" , " - url (required)" , " - mailTo (optional)" + , " - properties (optional)" , "" , " Example:" , "" @@ -41,16 +43,14 @@ configUsage = , "" , " # The mailTo field is an optional list" , " # mailTo = jean.dupont@mail.fr, john.smith@mail.com" + , "" + , " # The properties field is an optional list" + , " # properties = cp, city, surface, ges" ] configPath :: FilePath configPath = "conf" -data Config = Config - { url :: URL - , mailTo :: Maybe [Text] - } deriving (Eq, Read, Show) - getConfig :: IO (Maybe Config) getConfig = do exists <- doesFileExist configPath @@ -74,8 +74,16 @@ configFromFile = configFromMap :: Map Text Text -> Maybe Config configFromMap map = do url <- M.lookup "url" map - let mailTo = fmap T.strip . T.splitOn "," <$> M.lookup "mailTo" map - return $ Config { url = url, mailTo = mailTo } + let config = + Config + { url = url + , mailTo = fieldValues "mailTo" map + , properties = fieldValues "properties" map + } + return config + +fieldValues :: Text -> Map Text Text -> [Text] +fieldValues field map = fromMaybe [] $ fmap T.strip . T.splitOn "," <$> M.lookup field map lineConfig :: Text -> Maybe (Text, Text) lineConfig line = do -- cgit v1.2.3