aboutsummaryrefslogtreecommitdiff
path: root/src/Config.hs
diff options
context:
space:
mode:
authorJoris Guyonvarch2015-04-19 12:14:50 +0200
committerJoris Guyonvarch2015-04-19 12:15:51 +0200
commit78048fcbc81521d145b79b4b47761a8b698d7ff7 (patch)
treec6720dfaa1ccb15111a882421a18836a0c140292 /src/Config.hs
parent389d979eb3eaa18beb8a6da9f4a03bdb6acc1722 (diff)
downloadad-listener-78048fcbc81521d145b79b4b47761a8b698d7ff7.tar.gz
ad-listener-78048fcbc81521d145b79b4b47761a8b698d7ff7.tar.bz2
ad-listener-78048fcbc81521d145b79b4b47761a8b698d7ff7.zip
Adding a design to the HTML mail + Adding waitInMinutes in the
configuration
Diffstat (limited to 'src/Config.hs')
-rw-r--r--src/Config.hs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Config.hs b/src/Config.hs
index 0a421fa..98e2c9a 100644
--- a/src/Config.hs
+++ b/src/Config.hs
@@ -12,6 +12,7 @@ import qualified Data.Map as M
import Data.Text (Text)
import qualified Data.Text as T
import qualified Data.Text.IO as T
+import Data.Text.Read (decimal)
import Control.Monad (guard)
@@ -35,6 +36,7 @@ configUsage =
, " - url (required)"
, " - mailTo (optional)"
, " - properties (optional)"
+ , " - waitInMinutes (optional, default to 1)"
, ""
, " Example:"
, ""
@@ -46,6 +48,9 @@ configUsage =
, ""
, " # The properties field is an optional list"
, " # properties = cp, city, surface, ges"
+ , ""
+ , " # The waitInMinutes field is an optional integer, default to 1"
+ , " # waitInMinutes = 60"
]
configPath :: FilePath
@@ -79,9 +84,14 @@ configFromMap map = do
{ url = url
, mailTo = fieldValues "mailTo" map
, properties = fieldValues "properties" map
+ , waitInMinutes = fromMaybe 1 $ M.lookup "waitInMinutes" map >>= fmap fst . eitherToMaybe . decimal
}
return config
+eitherToMaybe :: Either a b -> Maybe b
+eitherToMaybe (Right x) = Just x
+eitherToMaybe _ = Nothing
+
fieldValues :: Text -> Map Text Text -> [Text]
fieldValues field map = fromMaybe [] $ fmap T.strip . T.splitOn "," <$> M.lookup field map