import Network import Network.HTTP.Lucu main :: IO () main = let config = defaultConfig { cnfServerPort = PortNumber 9999 } resources = mkResTree [ ( [] , helloWorld ) , ( ["urandom"] , staticFile "/dev/urandom" ) , ( ["inc"] , staticDir "/usr/include" ) ] fallbacks = [ \ path -> case path of ["hello"] -> return $ Just helloWorld _ -> return Nothing ] in do putStrLn "Access http://localhost:9999/ with your browser." runHttpd config resources fallbacks helloWorld :: ResourceDef helloWorld = ResourceDef { resUsesNativeThread = False , resIsGreedy = False , resGet = Just $ do --time <- liftIO $ getClockTime --foundEntity (strongETag "abcde") time setContentType $ read "text/hello" outputChunk "Hello, " outputChunk "World!\n" , resHead = Nothing , resPost = Just $ do str1 <- inputChunk 3 str2 <- inputChunk 3 str3 <- inputChunk 3 setContentType $ read "text/hello" output ("[" ++ str1 ++ " - " ++ str2 ++ "#" ++ str3 ++ "]") , resPut = Nothing , resDelete = Nothing }