From: Eugene Crosser Date: Thu, 27 Mar 2014 21:49:49 +0000 (+0400) Subject: separate config module X-Git-Tag: 0.9.0.0~117 X-Git-Url: http://average.org/gitweb/?a=commitdiff_plain;h=9e72c063ba8c5d23ad3061d31098ce05dcfcc3cd;p=pdns-pipe-nmc.git separate config module --- diff --git a/Config.hs b/Config.hs new file mode 100644 index 0000000..070b422 --- /dev/null +++ b/Config.hs @@ -0,0 +1,27 @@ +module Config ( Config(..) + , readConfig + ) where + +import Data.ConfigFile +import Data.Either.Utils +import Data.List.Split + +data Config = Config { rpcuser :: String + , rpcpassword :: String + , rpchost :: String + , rpcport :: Int + } deriving (Show) + +readConfig :: String -> IO Config +readConfig f = do + cp <- return . forceEither =<< readfile emptyCP f + return (Config { rpcuser = getSetting cp "rpcuser" "" + , rpcpassword = getSetting cp "rpcpassword" "" + , rpchost = getSetting cp "rpchost" "localhost" + , rpcport = getSetting cp "rpcport" 8336 + }) + where + getSetting cp x dfl = case get cp "DEFAULT" x of + Left _ -> dfl + Right x -> x + diff --git a/pdns-pipe-nmc.hs b/pdns-pipe-nmc.hs index ba62899..d374911 100644 --- a/pdns-pipe-nmc.hs +++ b/pdns-pipe-nmc.hs @@ -2,45 +2,23 @@ module Main where ---import Control.Applicative import Control.Monad import qualified Data.ByteString.Char8 as C (pack, unpack) import qualified Data.ByteString.Lazy.Char8 as L (pack, unpack) import Data.ByteString.Lazy as BS hiding (reverse, putStrLn) -import Data.ConfigFile -import Data.Either.Utils import Data.List.Split import Data.Aeson (encode, decode, Value(..)) import Network.HTTP.Types import Data.Conduit import Network.HTTP.Conduit import Data.JsonRpcClient + +import Config import PowerDns import NmcJson confFile = "/etc/namecoin.conf" --- Config file handling - -data Config = Config { rpcuser :: String - , rpcpassword :: String - , rpchost :: String - , rpcport :: Int - } deriving (Show) - -readConfig :: String -> IO Config -readConfig f = do - cp <- return . forceEither =<< readfile emptyCP f - return (Config { rpcuser = getSetting cp "rpcuser" "" - , rpcpassword = getSetting cp "rpcpassword" "" - , rpchost = getSetting cp "rpchost" "localhost" - , rpcport = getSetting cp "rpcport" 8336 - }) - where - getSetting cp x dfl = case get cp "DEFAULT" x of - Left _ -> dfl - Right x -> x - -- HTTP/JsonRpc interface qReq :: Config -> ByteString -> ByteString -> Request m