lio-simple-0.0.0.2: template/Main_hs.tmpl
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Application
import Control.Monad
import Network.Wai.Middleware.RequestLogger
import System.Environment
import Web.Simple
import LIO.DCLabel
import LIO.Web.Simple.TCB (run)
$if(include_fs)$
import LIO.FS.Simple
import LIO.FS.Simple.DCLabel
import System.Directory
import System.FilePath
$endif$
main :: IO ()
main = do$if(include_fs)$
fsRoot <- (\d -> d </> "liofs") `liftM` getCurrentDirectory$if(include_templates)$
-- Always label views and layouts public:
labelDirectoryRecursively dcPublic $$ fsRoot </> "views"
labelDirectoryRecursively dcPublic $$ fsRoot </> "layouts"
$endif$
withDCFS fsRoot $$ do$endif$
-- Run app
env <- getEnvironment
let port = maybe 3000 read $$ lookup "PORT" env
evalDC $$ app $$ run port logStdout