keter-1.0.1: incoming/foo/hello.hs
{-# LANGUAGE OverloadedStrings #-}
import System.Environment
import qualified Data.ByteString.Lazy.Char8 as L8
import Network.Wai
import Network.Wai.Handler.Warp
import Network.HTTP.Types
import System.Directory
import Control.Monad.IO.Class
import System.IO
import Network.Wai.Middleware.RequestLogger
import Data.Default
main :: IO ()
main = do
fp <- canonicalizePath "."
[msg] <- getArgs
portS <- getEnv "PORT"
env <- getEnvironment
let port = read portS
logger <- mkRequestLogger def
{ outputFormat = Apache FromHeader
}
run port $ logger $ \req -> do
liftIO $ putStrLn $ "Received a request at: " ++ show (pathInfo req)
liftIO $ hFlush stdout
liftIO $ hPutStrLn stderr $ "Testing standard error"
liftIO $ hFlush stderr
return $ responseLBS status200 [("content-type", "text/plain")] $ L8.pack $ unlines
$ ("Message: " ++ msg)
: ("Path: " ++ fp)
: ("Headers: " ++ show (requestHeaders req))
: map (\(k, v) -> concat
[ "Env: "
, k
, " = "
, v
]) env