{-# LANGUAGE MultiWayIf #-} {-# LANGUAGE TemplateHaskell #-} import IrcBot.IrcBot as I import IrcBot.JsonConfigDecoder import qualified Data.ByteString.Lazy as C import Data.Aeson import Data.Maybe import qualified Control.Concurrent as T import IrcBot.Definitions.Options import IrcBot.Definitions.ServerAddress import Control.Lens initWithOptions:: Maybe IOptions -> IO() initWithOptions (Just options) = do let serverAddresses = (servers options) mapM (\x -> T.forkIO (I.connectToIRCServer x)) serverAddresses print "[all threads initialized!]" initWithOptions _ = print "BAD OPTIONS JSON" mainLoop :: IO () mainLoop = do T.threadDelay 1000000 mainLoop makeLenses ''IServerAddress main :: IO () main = do let externalVar = [] output <- C.readFile ".connection.json" let options = decode output :: Maybe IOptions -- let servers = decode output :: Maybe IServerAddress initWithOptions options -- let serverAddress = fromJust serverAddressDecoded -- mapM (\x -> I.connectToIRCServer x) servers -- I.connectToIRCServer servers mainLoop print "its over"