git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
37 lines
1.2 KiB
Haskell
37 lines
1.2 KiB
Haskell
--------------------------------------------------------------------------------
|
|
module Main where
|
|
--------------------------------------------------------------------------------
|
|
import RIO
|
|
import Prelude (putStr, 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
|
|
, contextStripeAPIKey = envStripeAPIKey
|
|
, contextServerPort = envServerPort
|
|
, contextClientPort = envClientPort
|
|
}
|
|
|
|
main :: IO ()
|
|
main = do
|
|
mContext <- getAppContext
|
|
case mContext of
|
|
Left err -> putStrLn err
|
|
Right ctx -> do
|
|
result <- runRIO ctx App.run
|
|
case result of
|
|
Left err -> do
|
|
putStr "Something went wrong when executing the application: "
|
|
putStrLn $ show err
|
|
Right _ -> putStrLn "The application successfully executed."
|