import Data.Maybe import Network import Network.HTTP.Lucu.Config import Network.HTTP.Lucu.Httpd import Network.HTTP.Lucu.Resource import Network.HTTP.Lucu.Response import Network.URI import System.Posix.Signals main :: IO () main = let config = defaultConfig { cnfServerPort = PortNumber 9999 } resources = mkResTree [ ([], helloWorld) ] in do installHandler sigPIPE Ignore Nothing runHttpd config resources helloWorld :: ResourceDef helloWorld = ResourceDef { resUsesNativeThread = False , resIsGreedy = False , resGet = Just $ do setHeader "Content-Type" "text/plain" outputChunk "Hello, " outputChunk "World!\n" , resHead = Nothing , resPost = Just $ do str1 <- inputChunk 3 str2 <- inputChunk 3 str3 <- inputChunk 3 setHeader "Content-Type" "text/plain" output ("[" ++ str1 ++ " - " ++ str2 ++ "#" ++ str3 ++ "]") , resPut = Nothing , resDelete = Nothing }