X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fharbl.git;a=blobdiff_plain;f=harbl-cli%2Fsrc%2FConfiguration.hs;h=c3c55f0489189ab9ef2c2d201c0b7a9d556aa8eb;hp=a6798e97f08f38803edb0116a2f5080bffae5465;hb=98b9d8768fe78d9948151e499ec52f7f616bd6e9;hpb=b47aaa60a797aee4ecdcd5535ed40c1a7b15ddce diff --git a/harbl-cli/src/Configuration.hs b/harbl-cli/src/Configuration.hs index a6798e9..c3c55f0 100644 --- a/harbl-cli/src/Configuration.hs +++ b/harbl-cli/src/Configuration.hs @@ -7,14 +7,17 @@ module Configuration ( merge_optional ) where -import Data.Monoid ( Monoid(..) ) +-- System imports. import System.Console.CmdArgs.Default ( Default(..) ) --- From the harbl library. +-- Harbl library imports. import Network.DNS.RBL.Weight ( Weight ) +-- Local imports. import qualified OptionalConfiguration as OC ( - OptionalConfiguration(..) ) + OptionalConfiguration(..), + merge_maybe, + merge_monoid ) import Hosts ( Hosts(..) ) import Lists ( Lists(..) ) @@ -25,8 +28,8 @@ import Lists ( Lists(..) ) data Configuration = Configuration { hosts :: Hosts, - lists :: Lists } --- threshold :: Weight } + lists :: Lists, + threshold :: Weight } deriving (Show) @@ -35,8 +38,8 @@ data Configuration = -- instance Default Configuration where def = Configuration { hosts = def, - lists = def } --- threshold = def } + lists = def, + threshold = def } -- | Merge a 'Configuration' with an 'OptionalConfiguration'. This is @@ -46,8 +49,8 @@ instance Default Configuration where merge_optional :: Configuration -> OC.OptionalConfiguration -> Configuration -merge_optional cfg opt_cfg = - Configuration all_hosts all_lists +merge_optional cfg opt_cfg = Configuration hs ls t where - all_hosts = (hosts cfg) `mappend` (OC.hosts opt_cfg) - all_lists = (lists cfg) `mappend` (OC.lists opt_cfg) + hs = OC.merge_monoid (hosts cfg) (OC.hosts opt_cfg) + ls = OC.merge_monoid (lists cfg) (OC.lists opt_cfg) + t = OC.merge_maybe (threshold cfg) (OC.threshold opt_cfg)