[Fencommits] fenserve: twid; add 'get' and 'put' scripts wrapping curl to aid testing
Benja Fallenstein
benja.fallenstein at gmail.com
Thu Mar 22 19:49:41 EET 2007
Fri Mar 16 05:00:35 EET 2007 Benja Fallenstein <benja.fallenstein at gmail.com>
* twid; add 'get' and 'put' scripts wrapping curl to aid testing
diff -rN -u old-fenserve/FenServe.hs new-fenserve/FenServe.hs
--- old-fenserve/FenServe.hs 2007-03-22 19:49:41.000000000 +0200
+++ new-fenserve/FenServe.hs 2007-03-22 19:49:41.000000000 +0200
@@ -21,7 +21,7 @@
import HAppS
-import Control.Monad.State (get, modify)
+import Control.Monad.State (get, put, modify)
import qualified Data.ByteString as ByteString
import Data.ByteString (ByteString)
@@ -31,13 +31,12 @@
import Network.URI (uriToString)
-data Representation = Representation { mimeType :: String, body :: ByteString }
+data Resource = Dir (Map String Resource) | File { body :: ByteString }
deriving (Read, Show, Typeable)
-type State = Map String Representation
-instance StartState State where startStateM = return $ Map.empty
-instance Serialize State where
- typeString _ = "FenServe.State"
+instance StartState Resource where startStateM = return $ Dir Map.empty
+instance Serialize Resource where
+ typeString _ = "FenServe.Resource"
decodeStringM = defaultDecodeStringM
encodeStringM = defaultEncodeStringM
@@ -51,10 +50,11 @@
main :: IO ()
main = stdHTTP
- [ h just GET $ ok $ \uri () -> do (state :: State) <- get
- return $ Right $ body $ state Map.! uri
- , h just PUT $ ok $ \uri () -> do Request { rqBody=Body body } <- getEvent
- modify $ Map.insert uri $
- Representation "text/html" body
- return $ Right "Ok, put"
+ [ h just GET $ ok $ \uri () -> do
+ Dir dir <- get
+ return $ Right $ body $ dir Map.! uri
+ , h just PUT $ ok $ \uri () -> do
+ Request { rqBody=Body body } <- getEvent; Dir dir <- get
+ put $ Dir $ Map.insert uri (File body) dir
+ return $ Right "Ok, put"
]
diff -rN -u old-fenserve/get new-fenserve/get
--- old-fenserve/get 1970-01-01 02:00:00.000000000 +0200
+++ new-fenserve/get 2007-03-22 19:49:41.000000000 +0200
@@ -0,0 +1,3 @@
+#!/bin/sh
+curl $1
+echo
diff -rN -u old-fenserve/put new-fenserve/put
--- old-fenserve/put 1970-01-01 02:00:00.000000000 +0200
+++ new-fenserve/put 2007-03-22 19:49:41.000000000 +0200
@@ -0,0 +1,2 @@
+#!/bin/sh
+curl -X PUT -d $2 $1
More information about the Fencommits
mailing list