packages feed

source-code-server-2010.9.1: src/CodeMushu/Driver/Server.hs

import qualified Data.ByteString.Lazy.Char8 as B

import CodeMushu.Env

import Prelude ()

import Hack.Contrib.Utils (escape_html)
import MPS.Extra


import CodeMushu.Repo

import CodeMushu.Server
-- import Hack.Handler.SimpleServer
import Hack.Handler.Happstack

import Control.Concurrent.STM
import qualified Data.Map as M
import Hack.Contrib.Middleware.Inspect
import Hack.Contrib.Utils
import Hack.Contrib.Response (set_content_type)
import qualified Data.Default as Default

middleware_stack = 
  [
  --  inspect
    \app env -> jailed (putStrLn (env.path_info)) >> app env
  , text_sqlite
  ]

text_sqlite app = \env ->
  if env.path_info.starts_with "/repo/download/"
    then do
      r <- app env
      return - r.set_content_type "text/sqlite"
    else app env

run' = runWithConfig Default.def {port = 6001}

main = do
  putStrLn - "server started..."

  repo_state <- newTVarIO def
  run' - use middleware_stack - code_mushu_app repo_state