packages feed

bamboo-2009.4.25: src/Bamboo.hs

{-# LANGUAGE NoMonomorphismRestriction#-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE QuasiQuotes #-}

module Bamboo
  (
    module Bamboo.Controller.Application,
    bamboo
  ) where

import Bamboo.Controller.Application (paths)

import Hack.Handler.Hyena
import Hack.Utils
import Hack
import Hack.Contrib.RawRouter
import Hack.Contrib.ContentType
import Hack.Contrib.ContentSize
import Hack.Contrib.SimpleAccessLogger
import Hack.Contrib.ShowExceptions
import Hack.Contrib.File
import Hack.Contrib.Static
import Hack.Contrib.ShowStatus
import Hack.Contrib.Lucky

import qualified Hack.Contrib.Head as H

import Bamboo.Helper.Env hiding (body, not_found, (>))

default_content_type = "text/plain; charset=UTF-8"

middleware_stack = 
  [  dummy_middleware
  
  -- completeness
  ,  content_size
  ,  content_type default_content_type
  
  -- debuging
  ,  show_exceptions Nothing
  ,  show_status
  
  -- optimization
  ,  H.head

  -- logger
  -- ,  simple_access_logger Nothing
    
  -- dispatch
  -- static serve
   ,  lucky
  ,  static (Just "db/public") ["/theme", "/images", "/plugin", "/favicon.ico"]
  
  -- real app
  ,  route paths
  ]
  
app = dummy_app .use middleware_stack

bamboo :: IO ()
bamboo = run app