lio-simple-0.0.0.3: template/Common_hs.tmpl
{-# LANGUAGE Trustworthy #-}$if(include_templates)$
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
$endif$
module $module$.Common where
import Prelude hiding (readFile, writeFile, appendFile, catch)
import LIO
import LIO.DCLabel
$if(include_templates)$
import LIO.Web.Simple
import LIO.Web.Simple.DCLabel
import Web.Simple.Templates
import Control.Applicative
import System.FilePath
$if(include_fs)$
import LIO.FS.Simple
import Data.Text.Encoding
import Web.Simple.Templates.Language
$else$
import LIO.Web.Simple.TCB (lioGetTemplateTCB)
$endif$
$endif$
data AppSettings = AppSettings { }
newAppSettings :: DC AppSettings
newAppSettings = do
return AppSettings
$if(include_templates)$
instance HasTemplates DC AppSettings where$if(include_fs)$
viewDirectory = return $$ "views"
defaultLayout = Just <$$> getTemplate ("layouts" </> "main.html")
getTemplate fp = do
eres <- compileTemplate . decodeUtf8 <$$> liftLIO (liftLIO $$ readFile fp)
case eres of
Left str -> fail str
Right tmpl -> return tmpl$else$
viewDirectory = return $$ "liofs" </> "views"
defaultLayout = Just <$$> getTemplate ("liofs" </> "layouts" </> "main.html")
getTemplate = liftLIO . lioGetTemplateTCB
-- NOTE: We assume that "liofs" only contains public data, DO NOT
-- store any sensitive data in this directory
$endif$
$endif$