packages feed

orchid-demo 0.0.5 → 0.0.6

raw patch · 2 files changed

+23/−23 lines, 2 filesdep +salvia-extrasdep ~Pipedep ~basedep ~extensible-exceptions

Dependencies added: salvia-extras

Dependency ranges changed: Pipe, base, extensible-exceptions, mtl, network, orchid, salvia, stm

Files

orchid-demo.cabal view
@@ -1,21 +1,23 @@ Name:             orchid-demo-Version:          0.0.5+Version:          0.0.6 Description:      Haskell Wiki Demo Synopsis:         Haskell Wiki Demo Category:         Network, Web+Cabal-version:    >= 1.6 License:          BSD3 License-file:     LICENSE Author:           Sebastiaan Visser Maintainer:       sfvisser@cs.uu.nl Build-Type:       Simple-Build-Depends:    base,-                  network,-                  extensible-exceptions,-                  salvia ==0.0.5,-                  orchid ==0.0.7,-                  mtl ==1.1.0.2,-                  Pipe,-                  stm+Build-Depends:    base ==3.0.*,+                  salvia ==0.1.*,+                  salvia-extras ==0.1.*,+                  orchid ==0.0.*,+                  mtl ==1.1.*,+                  network ==2.2.*,+                  extensible-exceptions ==0.1.*,+                  Pipe ==2.1.*,+                  stm ==2.1.* Data-Files:       data.zip  Executable:       orchid-demo
src/Demo.hs view
@@ -2,15 +2,13 @@  import Control.Concurrent.STM import Control.Exception.Extensible-import Control.Monad (when)-import Network.Orchid.Wiki (hWiki, FileStoreType (..))-import Network.Protocol.Uri (jail)-import Network.Salvia.Advanced.ExtendedFileSystem (hExtendedFileSystem)-import Network.Salvia.Handlers.Default (hDefault)-import Network.Salvia.Handlers.Login (readUserDatabase, UserPayload)-import Network.Salvia.Handlers.Session (mkSessions, Sessions)-import Network.Salvia.Httpd (defaultConfig, start, listenAddr, listenPort)-import Network.Socket (PortNumber, inet_addr)+import Control.Monad+import Network.Orchid.Wiki+import Network.Protocol.Uri+import Network.Salvia.Handler.ExtendedFileSystem+import Network.Salvia.Handlers+import Network.Salvia.Httpd+import Network.Socket import Paths_orchid_demo import System.Console.GetOpt import System.Environment@@ -45,21 +43,21 @@ stringToFileStore kind = lookup kind [("Darcs", Darcs), ("Git", Git)]  run :: Bool -> String -> String -> PortNumber -> FilePath -> FilePath -> IO ()-run serve sfs address port dir users = do+run serve sfs addr prt dir users = do    -- Initialize global state.   db       <- readUserDatabase users   ioconfig <- defaultConfig    count    <- atomically $ newTVar 0   sessions <- mkSessions :: IO (Sessions (UserPayload ()))-  addr     <- inet_addr address+  addr'    <- inet_addr addr    case stringToFileStore sfs of     Nothing -> putStrLn $ "Error: No such filestore: " ++ sfs     Just fs -> do        -- Alter config and setup handler.-      let config    = ioconfig { listenAddr = addr, listenPort = port }+      let cfg       = ioconfig { listenAddr = addr', listenPort = prt }       let myHandler = if serve                        then const $ hExtendedFileSystem dir                        else hWiki fs dir dir db@@ -69,12 +67,12 @@         $ putStrLn "Warning: serving user database to the evil outside world."        -- Print status messages and..-      putStrLn $ concat ["Listening on ", address, ":", show (listenPort config), "."]+      putStrLn $ concat ["Listening on ", addr, ":", show (listenPort cfg), "."]       putStrLn $ concat ["Using ", dir, " as wiki repository."]        -- ..off we go!       putStrLn "Server started."-      start config $ hDefault count sessions myHandler+      start cfg $ hSessionEnv count sessions myHandler  extractArchive :: FilePath -> FilePath -> IO () extractArchive from to = do