Clarify README further, ensure production logger is used when set to PRODUCTION environment

This commit is contained in:
2024-02-18 19:34:16 -06:00
parent d713f9b4e6
commit 5072fb4df4
4 changed files with 26 additions and 12 deletions

View File

@ -39,6 +39,9 @@ encKey = do
adminEmail :: IO String
adminEmail = getEnv "ADMINEMAIL"
getRuntimeEnvironment :: IO String
getRuntimeEnvironment = getEnv "ENVIRONMENT"
appPort :: IO String
appPort = getEnv "APPLICATIONPORT"

View File

@ -1,22 +1,28 @@
module Core.HTTP ( app ) where
import Core.Configuration (adminEmail, confLinkLength)
import Core.Configuration ( adminEmail
, confLinkLength
, getRuntimeEnvironment)
import Core.Types
import Core.Templates (renderIndex, renderStyle)
import Feature.Generation.HTTP as Generation
import Feature.Sharing.HTTP as Sharing
import Control.Monad (void)
import Control.Monad.Trans (liftIO)
import Data.Maybe (Maybe (Nothing))
import Network.Wai.Middleware.RequestLogger (logStdoutDev)
import Network.Wai.Middleware.RequestLogger (logStdout, logStdoutDev)
import Network.Wai.Middleware.Static
import Web.Scotty
app :: PurrApp ()
app = do
app :: String -> PurrApp ()
app env = do
-- Middleware that are processed on every request
middleware logStdoutDev
case env of
"production" -> middleware logStdout
"prod" -> middleware logStdout
_ -> middleware logStdoutDev
middleware $ staticPolicy (noDots >-> addBase "data/assets/public")
-- Core Routes

View File

@ -27,5 +27,6 @@ main = do
{- Get the configured port to run on and start the Scotty webserver app
defined in HTTP.app -}
appPortStr <- Configuration.appPort
env <- Configuration.getRuntimeEnvironment
let appPort = read appPortStr :: Int
scotty appPort HTTP.app
scotty appPort (HTTP.app env)