summaryrefslogtreecommitdiff
path: root/src/Main.hs
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)