blob: 20da414a4cdb4072a717f16c6a78b76ca7cd3f22 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE LambdaCase #-}
import Network.CGI (runCGI, handleErrors, CGIResult, CGI, outputFPS)
import Text.Blaze.Html.Renderer.Utf8 (renderHtml)
import Settlr.Config (withConfig)
import Settlr.Routes (loadRoute, Route(..))
import Settlr.Views.ErrorNotFound (viewErrorNotFound)
import Settlr.Views.Home (viewHome)
cgiMain :: CGI CGIResult
cgiMain = withConfig $ do
view <- loadRoute >>= \case
Nothing -> viewErrorNotFound
Just RouteHome -> viewHome
Just RouteNew -> viewErrorNotFound
outputFPS (renderHtml view)
main :: IO ()
main = runCGI (handleErrors cgiMain)
|