Browse Source

Read quik params from config

master
Denis Tereshkin 9 years ago
parent
commit
990cc66f29
  1. 15
      app/Main.hs

15
app/Main.hs

@ -44,7 +44,10 @@ data TableConfig = TableConfig {
data Config = Config { data Config = Config {
quotesourceEndpoint :: String, quotesourceEndpoint :: String,
brokerserverEndpoint :: String, brokerserverEndpoint :: String,
tables :: [TableConfig] tables :: [TableConfig],
quikPath :: String,
dllPath :: String,
quikAccounts :: [T.Text]
} deriving (Show) } deriving (Show)
readConfig :: String -> IO Config readConfig :: String -> IO Config
@ -61,9 +64,15 @@ parseConfig = withObject "object" $ \obj -> do
rt <- case HM.lookup "tables" obj of rt <- case HM.lookup "tables" obj of
Just v -> parseTables v Just v -> parseTables v
Nothing -> fail "Expected tables array" Nothing -> fail "Expected tables array"
qp <- obj .: "quik-path"
dp <- obj .: "dll-path"
accs <- V.toList <$> obj .: "accounts"
return Config { quotesourceEndpoint = qse, return Config { quotesourceEndpoint = qse,
brokerserverEndpoint = bse, brokerserverEndpoint = bse,
tables = rt } tables = rt,
quikPath = qp,
dllPath = dp,
quikAccounts = fmap T.pack accs }
where where
parseTables :: Value -> Parser [TableConfig] parseTables :: Value -> Parser [TableConfig]
parseTables = withArray "array" $ \arr -> mapM parseTableConfig (V.toList arr) parseTables = withArray "array" $ \arr -> mapM parseTableConfig (V.toList arr)
@ -106,7 +115,7 @@ main = do
(forkId, c1, c2) <- forkBoundedChan 1000 chan (forkId, c1, c2) <- forkBoundedChan 1000 chan
broker <- mkPaperBroker c1 1000000 ["demo"] broker <- mkPaperBroker c1 1000000 ["demo"]
eitherBrokerQ <- runExceptT $ mkQuikBroker "C:\\Program Files (x86)\\Info\\Trans2Quik.dll" "C:\\Program Files (x86)\\Info" ["<ACCOUNT>"] eitherBrokerQ <- runExceptT $ mkQuikBroker (dllPath config) (quikPath config) (quikAccounts config)
case eitherBrokerQ of case eitherBrokerQ of
Left errmsg -> warningM "main" $ "Can't load quik broker: " ++ T.unpack errmsg Left errmsg -> warningM "main" $ "Can't load quik broker: " ++ T.unpack errmsg
Right brokerQ -> Right brokerQ ->

Loading…
Cancel
Save