myriad/src/Myriad.hs

28 lines
781 B
Haskell

module Myriad
( runMyriadServer
) where
import Control.Monad.Logger (runStdoutLoggingT)
import Data.String.Conversions
import Network.Wai.Handler.Warp
import Optics
import Myriad.Core
import Myriad.Docker
import Myriad.Server
runMyriadServer :: FilePath -> FilePath -> IO ()
runMyriadServer configPath languagesDir = do
env <- initEnv configPath languagesDir
runMyriadT env $ do
buildAllImages
startCleanup
logInfo ["Finished Docker-related setup"]
let myriadPort = fromIntegral $ env ^. #config % #port
onReady = runStdoutLoggingT $ logInfo ["Server started on http://localhost:", cs $ show myriadPort]
settings = setPort myriadPort . setBeforeMainLoop onReady $ defaultSettings
runSettings settings $ app env