X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fhalcyon.git;a=blobdiff_plain;f=src%2FConfiguration.hs;h=786586557226406b8828e644228f3cb03204d290;hp=b4b29f3687bb7e9429ab0959368841e208fc9ea1;hb=d7c6b5499c0969b6e488d9fc583f93bbb4e3d4c7;hpb=26718edaad5cd7921d957a1f0972fd9f5cd5b645 diff --git a/src/Configuration.hs b/src/Configuration.hs index b4b29f3..7865865 100644 --- a/src/Configuration.hs +++ b/src/Configuration.hs @@ -4,11 +4,13 @@ -- module Configuration ( - Cfg(..) -) + Cfg(..), + default_config, + merge_optional ) where -import qualified OptionalConfiguration as OC +import qualified OptionalConfiguration as OC ( OptionalCfg(..) ) +import Usernames ( Usernames(..) ) data Cfg = Cfg { consumer_key :: String, @@ -21,8 +23,9 @@ data Cfg = sendmail_path :: String, from_address :: Maybe String, to_address :: Maybe String, - verbose :: Bool } - + verbose :: Bool, + usernames :: Usernames } + deriving (Show) default_config :: Cfg @@ -37,7 +40,8 @@ default_config = sendmail_path = "/usr/sbin/sendmail", from_address = Nothing, to_address = Nothing, - verbose = False } + verbose = False, + usernames = Usernames [] } merge_optional :: Cfg -> OC.OptionalCfg -> Cfg merge_optional cfg opt_cfg = @@ -53,6 +57,7 @@ merge_optional cfg opt_cfg = (merge' (from_address cfg) (OC.from_address opt_cfg)) (merge' (to_address cfg) (OC.to_address opt_cfg)) (merge (verbose cfg) (OC.verbose opt_cfg)) + all_usernames where merge :: a -> Maybe a -> a merge x Nothing = x @@ -64,3 +69,8 @@ merge_optional cfg opt_cfg = merge' (Just x) Nothing = Just x merge' Nothing (Just x) = Just x merge' (Just _) (Just y) = Just y + + -- If there are any optional usernames, use only those. + all_usernames = if (null (get_usernames (OC.usernames opt_cfg))) + then (usernames cfg) + else (OC.usernames opt_cfg)