X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fhalcyon.git;a=blobdiff_plain;f=src%2FConfiguration.hs;h=786586557226406b8828e644228f3cb03204d290;hp=39dd4e6f4cc46a58cd63be81471bbf2a80cfcbc0;hb=d7c6b5499c0969b6e488d9fc583f93bbb4e3d4c7;hpb=7bb00e04c15781d889f950d00babf3f183047bff diff --git a/src/Configuration.hs b/src/Configuration.hs index 39dd4e6..7865865 100644 --- a/src/Configuration.hs +++ b/src/Configuration.hs @@ -6,11 +6,11 @@ module Configuration ( Cfg(..), default_config, - merge_optional -) + merge_optional ) where -import qualified OptionalConfiguration as OC +import qualified OptionalConfiguration as OC ( OptionalCfg(..) ) +import Usernames ( Usernames(..) ) data Cfg = Cfg { consumer_key :: String, @@ -24,7 +24,7 @@ data Cfg = from_address :: Maybe String, to_address :: Maybe String, verbose :: Bool, - usernames :: [String] } + usernames :: Usernames } deriving (Show) @@ -41,7 +41,7 @@ default_config = from_address = Nothing, to_address = Nothing, verbose = False, - usernames = [] } + usernames = Usernames [] } merge_optional :: Cfg -> OC.OptionalCfg -> Cfg merge_optional cfg opt_cfg = @@ -57,7 +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)) - ((usernames cfg) ++ (OC.usernames opt_cfg)) + all_usernames where merge :: a -> Maybe a -> a merge x Nothing = x @@ -69,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)