module OptionalConfiguration (
OptionalConfiguration(..),
- from_rc )
+ from_rc,
+ merge_maybes )
where
import qualified Data.Configurator as DC (
--
data OptionalConfiguration =
OptionalConfiguration {
- both :: Maybe Bool,
database :: Maybe String,
detail :: Maybe Bool,
host :: Maybe String,
Nothing
Nothing
Nothing
- Nothing
-- | Combine @cfg1@ and @cfg2@, giving precedence to @cfg2@.
cfg1 `mappend` cfg2 =
OptionalConfiguration
- (merge_maybes (both cfg1) (both cfg2))
(merge_maybes (database cfg1) (database cfg2))
(merge_maybes (detail cfg1) (detail cfg2))
(merge_maybes (host cfg1) (host cfg2))
let user_config_path = home </> ".mailbox-countrc"
cfg <- DC.load [ DC.Optional global_config_path,
DC.Optional user_config_path ]
- cfg_both <- DC.lookup cfg "both"
cfg_database <- DC.lookup cfg "database"
cfg_detail <- DC.lookup cfg "detail"
cfg_host <- DC.lookup cfg "host"
cfg_username <- DC.lookup cfg "username"
return $ OptionalConfiguration
- cfg_both
cfg_database
cfg_detail
cfg_host