import Control.Exception
import Control.Monad.Trans.Resource (allocate, release, runResourceT)
import Control.Monad.IO.Class
import Network.Memcache
import System.Environment
main :: IO ()
main = do
args <- getArgs
case args of
[] -> main' "127.0.0.1:11211"
(nk:_) -> main' nk
main' :: Nodekey -> IO ()
main' nodekey = runResourceT $ do
(rkeyClient , client) <- flip allocate closeClient $ do
c <- openClient nodekey
case c of
Just client -> return (client)
Nothing -> liftIO $ do
throwIO (userError "could not open.")
liftIO $ do
ret <- set client "key" "foo"
print ret
ret' <- get client "key" :: IO (Maybe String)
print ret'
release rkeyClient