2017-08-28 11:14:37 +05:30
|
|
|
module Main where
|
|
|
|
|
|
|
|
import Prelude
|
2017-09-11 00:36:51 +05:30
|
|
|
|
2017-08-28 11:14:37 +05:30
|
|
|
import Control.Monad.Eff (Eff)
|
2017-09-30 22:22:14 +05:30
|
|
|
import Control.Monad.Eff.Console (CONSOLE)
|
|
|
|
import Control.Monad.Eff.Now (NOW)
|
2017-09-30 20:32:07 +05:30
|
|
|
import Data.Either (Either(..))
|
|
|
|
import Data.Set (toUnfoldable)
|
|
|
|
import Data.String (joinWith)
|
2017-09-11 00:36:51 +05:30
|
|
|
import Database.PostgreSQL as PG
|
|
|
|
import Node.Express.Types (EXPRESS)
|
2017-09-30 20:32:07 +05:30
|
|
|
import Node.Process (PROCESS)
|
|
|
|
import Node.Process as Process
|
|
|
|
import SimpleService.Config (readServerConfig)
|
2017-09-30 22:22:14 +05:30
|
|
|
import SimpleService.Logger as Log
|
2017-09-11 00:36:51 +05:30
|
|
|
import SimpleService.Server (runServer)
|
2017-08-28 11:14:37 +05:30
|
|
|
|
2017-09-11 00:36:51 +05:30
|
|
|
main :: forall eff. Eff ( console :: CONSOLE
|
|
|
|
, express :: EXPRESS
|
|
|
|
, postgreSQL :: PG.POSTGRESQL
|
2017-09-30 20:32:07 +05:30
|
|
|
, process :: PROCESS
|
2017-09-30 22:22:14 +05:30
|
|
|
, now :: NOW
|
2017-09-11 00:36:51 +05:30
|
|
|
| eff) Unit
|
2017-09-30 20:32:07 +05:30
|
|
|
main = readServerConfig >>= case _ of
|
|
|
|
Left missingKeys -> do
|
2017-09-30 22:22:14 +05:30
|
|
|
Log.error $ "Unable to start. Missing Env keys: " <> joinWith ", " (toUnfoldable missingKeys)
|
2017-09-30 20:32:07 +05:30
|
|
|
Process.exit 1
|
|
|
|
Right { port, databaseConfig } -> runServer port databaseConfig
|