X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fharbl.git;a=blobdiff_plain;f=harbl-cli%2Fsrc%2FOptionalConfiguration.hs;h=66e47858b227b8cb6112a026c973d90a1d01d8eb;hp=37d05a9431af2bb44e8f862691e936b1f627e8d5;hb=a9e293c277eebd06b4916a54342a866aba20ef4f;hpb=98b9d8768fe78d9948151e499ec52f7f616bd6e9;ds=sidebyside diff --git a/harbl-cli/src/OptionalConfiguration.hs b/harbl-cli/src/OptionalConfiguration.hs index 37d05a9..66e4785 100644 --- a/harbl-cli/src/OptionalConfiguration.hs +++ b/harbl-cli/src/OptionalConfiguration.hs @@ -1,7 +1,5 @@ {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE StandaloneDeriving #-} -- | An OptionalConfiguration is just like a 'Configuration', except -- all of its fields are optional. The user can set options in two @@ -24,13 +22,14 @@ import qualified Data.Configurator as DC ( import Data.Data ( Data ) import Data.Maybe ( fromMaybe ) import Data.Monoid ( Monoid(..) ) +import Data.Text ( pack ) import Data.Typeable ( Typeable ) import Paths_harbl ( getSysconfDir ) import System.Console.CmdArgs.Default ( Default(..) ) import System.Directory ( getHomeDirectory ) import System.FilePath ( () ) import System.IO.Error ( catchIOError ) -import System.IO ( hPutStrLn, stderr ) +import System.IO ( hPrint, stderr ) -- Harbl library imports. import Network.DNS.RBL.Weight ( Weight ) @@ -162,18 +161,18 @@ instance Monoid OptionalConfiguration where from_rc :: IO OptionalConfiguration from_rc = do etc <- catchIOError getSysconfDir (\e -> do - hPutStrLn stderr (show e) + hPrint stderr e return "/etc") home <- catchIOError getHomeDirectory (\e -> do - hPutStrLn stderr (show e) + hPrint stderr e return "$(HOME)") let global_config_path = etc "harblrc" let user_config_path = home ".harblrc" cfg <- DC.load [ DC.Optional global_config_path, DC.Optional user_config_path ] - cfg_lists <- DC.lookup cfg "lists" - cfg_hosts <- DC.lookup cfg "hosts" - cfg_threshold <- DC.lookup cfg "threshold" + cfg_lists <- DC.lookup cfg (pack "lists") + cfg_hosts <- DC.lookup cfg (pack "hosts") + cfg_threshold <- DC.lookup cfg (pack "threshold") return $ OptionalConfiguration (fromMaybe def cfg_hosts) (fromMaybe def cfg_lists)