{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE LambdaCase #-} import Network.CGI (runCGI, handleErrors, outputFPS, setHeader) import Text.Blaze.Html.Renderer.Utf8 (renderHtml) import Settlr.Config (withConfig, ScriptM) import Settlr.Routes (loadRoute, Route(..)) import Settlr.Views.ErrorNotFound (viewErrorNotFound) import Settlr.Views.Home (viewHome) import Text.Blaze.Html5 (Html) view :: Maybe Route -> ScriptM Html view (Just RouteHome) = viewHome view (Just RouteNew) = viewErrorNotFound view Nothing = viewErrorNotFound main :: IO () main = runCGI $ handleErrors $ withConfig $ do setHeader "Content-type" "text/html; charset=\"utf-8\"" loadRoute >>= view >>= outputFPS . renderHtml