X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fhalcyon.git;a=blobdiff_plain;f=src%2FConfiguration.hs;h=095f5395f6bf7b6d0e4994ece60f453df1e5b614;hp=39dd4e6f4cc46a58cd63be81471bbf2a80cfcbc0;hb=dd4abc21674b98bc55a3775291a8667dffec2863;hpb=7bb00e04c15781d889f950d00babf3f183047bff diff --git a/src/Configuration.hs b/src/Configuration.hs index 39dd4e6..095f539 100644 --- a/src/Configuration.hs +++ b/src/Configuration.hs @@ -11,6 +11,7 @@ module Configuration ( where import qualified OptionalConfiguration as OC +import Usernames data Cfg = Cfg { consumer_key :: String, @@ -24,7 +25,7 @@ data Cfg = from_address :: Maybe String, to_address :: Maybe String, verbose :: Bool, - usernames :: [String] } + usernames :: Usernames } deriving (Show) @@ -41,7 +42,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 +58,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 +70,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)