packages feed

Lucu-0.4.1: examples/HelloWorld.hs

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
    = emptyResource {
        resGet
          = Just $ do --time <- liftIO $ getClockTime
                      --foundEntity (strongETag "abcde") time
                      setContentType $ read "text/hello"
                      outputChunk "Hello, "
                      outputChunk "World!\n"
      , resPost
          = Just $ do str1 <- inputChunk 3
                      str2 <- inputChunk 3
                      str3 <- inputChunk 3
                      setContentType $ read "text/hello"
                      output ("[" ++ str1 ++ " - " ++ str2 ++ "#" ++ str3 ++ "]")
      }