2019-07-23 07:24:02 +02:00
|
|
|
module Myriad
|
|
|
|
( runMyriadServer
|
|
|
|
) where
|
|
|
|
|
2019-07-23 07:40:45 +02:00
|
|
|
import Control.Monad.Logger (runStdoutLoggingT)
|
|
|
|
|
|
|
|
import Data.String.Conversions
|
2019-07-23 07:24:02 +02:00
|
|
|
|
2019-07-23 07:40:45 +02:00
|
|
|
import Network.Wai.Handler.Warp
|
2019-07-23 07:24:02 +02:00
|
|
|
|
2020-06-17 04:29:12 +02:00
|
|
|
import Myriad.Config
|
2020-06-17 04:37:38 +02:00
|
|
|
import Myriad.Core
|
2019-07-23 07:24:02 +02:00
|
|
|
import Myriad.Docker
|
|
|
|
import Myriad.Server
|
|
|
|
|
2020-06-17 04:02:12 +02:00
|
|
|
runMyriadServer :: FilePath -> FilePath -> IO ()
|
|
|
|
runMyriadServer configPath languagesDir = do
|
|
|
|
env <- initEnv configPath languagesDir
|
2020-06-17 04:42:29 +02:00
|
|
|
runMyriadT env $ do
|
2019-07-23 07:24:02 +02:00
|
|
|
buildAllImages
|
|
|
|
startCleanup
|
|
|
|
logInfo ["Finished Docker-related setup"]
|
2019-07-23 07:40:45 +02:00
|
|
|
let myriadPort = fromIntegral . port $ config env
|
|
|
|
onReady = runStdoutLoggingT $ logInfo ["Server started on port ", cs $ show myriadPort, "!"]
|
|
|
|
settings = setPort myriadPort . setBeforeMainLoop onReady $ defaultSettings
|
|
|
|
runSettings settings $ app env
|