From 9e72c063ba8c5d23ad3061d31098ce05dcfcc3cd Mon Sep 17 00:00:00 2001 From: Eugene Crosser Date: Fri, 28 Mar 2014 01:49:49 +0400 Subject: [PATCH] separate config module --- Config.hs | 27 +++++++++++++++++++++++++++ pdns-pipe-nmc.hs | 26 ++------------------------ 2 files changed, 29 insertions(+), 24 deletions(-) create mode 100644 Config.hs 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 -- 2.39.2