blob: 36044d2585eba49624fb3d74c38e44ca2f1299d9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
--------------------------------------------------------------------------------
module Main where
--------------------------------------------------------------------------------
import RIO
import Prelude (putStrLn)
import qualified Types as T
import qualified System.Envy as Envy
import qualified App
--------------------------------------------------------------------------------
-- | Attempt to read environment variables from the system and initialize the
-- Context data type for our application.
getAppContext :: IO (Either String T.Context)
getAppContext = do
mEnv <- Envy.decodeEnv
case mEnv of
Left err -> pure $ Left err
Right T.Env{..} -> pure $ Right T.Context
{ contextGoogleClientID = envGoogleClientID
, contextClientPort = 8000
, contextServerPort = 3000
}
main :: IO ()
main = do
mContext <- getAppContext
case mContext of
Left err -> putStrLn err
Right ctx -> runRIO ctx App.run
|