]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - examples/HelloWorld.hs
Use base64-bytestring instead of dataenc
[Lucu.git] / examples / HelloWorld.hs
index 52ceceb14f34b937951288940a5b962502769335..dacd4c363604b4694430c6dcf68e91e0ea91d7b9 100644 (file)
@@ -1,9 +1,40 @@
-import Network
-import Network.HTTP.Lucu.Config
-import Network.HTTP.Lucu.Httpd
+import Network.HTTP.Lucu
 
 main :: IO ()
-main = let config    = defaultConfig { cnfServerPort = PortNumber 9999 }
-           resources = mkResourceTable []
+main = let config    = defaultConfig { cnfServerPort = "9999" }
+           resources = mkResTree [ ( []
+                                   , helloWorld )
+
+                                 , ( ["urandom"]
+                                   , staticFile "/dev/urandom" )
+
+                                 , ( ["inc"]
+                                   , staticDir "/usr/include" )
+                                 ]
+           fallbacks = [ \ path -> case path of
+                                     ["hello"] -> return $ Just helloWorld
+                                     _         -> return Nothing
+                       ]
        in
-         runHttpd config resources
\ No newline at end of file
+         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"
+                      outputChunk =<< getRemoteAddr'
+                      
+      , resPost
+          = Just $ do str1 <- inputChunk 3
+                      str2 <- inputChunk 3
+                      str3 <- inputChunk 3
+                      setContentType $ read "text/hello"
+                      output ("[" ++ str1 ++ " - " ++ str2 ++ "#" ++ str3 ++ "]")
+      }
\ No newline at end of file