hack-contrib 2009.6.9 → 2009.6.25
raw patch · 23 files changed
+118/−108 lines, 23 filesdep −unixdep ~mpsPVP ok
version bump matches the API change (PVP)
Dependencies removed: unix
Dependency ranges changed: mps
API changes (from Hackage documentation)
+ Hack.Contrib.Middleware.Hub: get_pid :: IO Int
+ Hack.Contrib.Utils: format_time :: String -> UTCTime -> String
+ Hack.Contrib.Utils: now :: IO UTCTime
Files
- changelog.md +8/−0
- hack-contrib.cabal +2/−2
- src/Hack/Contrib/Middleware/BounceFavicon.hs +3/−3
- src/Hack/Contrib/Middleware/ContentLength.hs +4/−4
- src/Hack/Contrib/Middleware/ContentType.hs +2/−3
- src/Hack/Contrib/Middleware/ETag.hs +3/−4
- src/Hack/Contrib/Middleware/File.hs +7/−9
- src/Hack/Contrib/Middleware/Head.hs +3/−3
- src/Hack/Contrib/Middleware/Hub.hs +17/−6
- src/Hack/Contrib/Middleware/Inspect.hs +1/−1
- src/Hack/Contrib/Middleware/Lambda.hs +7/−6
- src/Hack/Contrib/Middleware/Lucky.hs +6/−6
- src/Hack/Contrib/Middleware/NotFound.hs +1/−1
- src/Hack/Contrib/Middleware/RegexpRouter.hs +3/−4
- src/Hack/Contrib/Middleware/ShowExceptions.hs +5/−8
- src/Hack/Contrib/Middleware/ShowStatus.hs +6/−6
- src/Hack/Contrib/Middleware/SimpleAccessLogger.hs +5/−5
- src/Hack/Contrib/Middleware/Static.hs +4/−5
- src/Hack/Contrib/Middleware/URLMap.hs +3/−3
- src/Hack/Contrib/Mime.hs +2/−2
- src/Hack/Contrib/Request.hs +5/−9
- src/Hack/Contrib/Response.hs +5/−6
- src/Hack/Contrib/Utils.hs +16/−12
changelog.md view
@@ -1,3 +1,11 @@+2009.6.25+---------++### Feature++* windows compatible+* use mps-light when possible to reduce size+ 2009.6.9 --------
hack-contrib.cabal view
@@ -1,5 +1,5 @@ Name: hack-contrib-Version: 2009.6.9+Version: 2009.6.25 Build-type: Simple Synopsis: Hack contrib Description: Hack contrib@@ -15,7 +15,7 @@ library ghc-options: -Wall- build-depends: base >=4 && < 5, cgi, network, haskell98, old-locale, old-time, directory, filepath, containers, bytestring, ansi-wl-pprint, data-default >= 0.2, ansi-wl-pprint, unix, time, pureMD5, mps >= 2009.5.13, hack >= 2009.5.19+ build-depends: base >=4 && < 5, cgi, network, haskell98, old-locale, old-time, directory, filepath, containers, bytestring, ansi-wl-pprint, data-default >= 0.2, ansi-wl-pprint, time, pureMD5, mps >= 2009.6.25, hack >= 2009.5.19 hs-source-dirs: src/ exposed-modules: Hack.Contrib.Utils
src/Hack/Contrib/Middleware/BounceFavicon.hs view
@@ -3,11 +3,11 @@ module Hack.Contrib.Middleware.BounceFavicon (bounce_favicon) where import Hack-import Hack.Contrib.Utils import Hack.Contrib.Middleware.NotFound--import MPSUTF8+import Hack.Contrib.Utils+import MPS.Light import Prelude hiding ((.), (^), (>), head)+ bounce_favicon :: Middleware
src/Hack/Contrib/Middleware/ContentLength.hs view
@@ -4,12 +4,12 @@ module Hack.Contrib.Middleware.ContentLength (content_length) where import Hack-import Hack.Contrib.Utils-import Hack.Contrib.Response import Hack.Contrib.Constants--import MPSUTF8+import Hack.Contrib.Response+import Hack.Contrib.Utils+import MPS.Light import Prelude hiding ((.), (^), (>))+ content_length :: Middleware content_length app = \env -> do
src/Hack/Contrib/Middleware/ContentType.hs view
@@ -4,10 +4,9 @@ module Hack.Contrib.Middleware.ContentType (content_type) where import Hack-import Hack.Contrib.Response import Hack.Contrib.Constants--import MPSUTF8+import Hack.Contrib.Response+import MPS.Light import Prelude hiding ((.), (^), (>))
src/Hack/Contrib/Middleware/ETag.hs view
@@ -3,14 +3,13 @@ module Hack.Contrib.Middleware.ETag (etag) where +import Data.Digest.Pure.MD5 import Hack-import Hack.Contrib.Response import Hack.Contrib.Constants--import MPSUTF8+import Hack.Contrib.Response+import MPS.Light import Prelude hiding ((.), (^), (>)) -import Data.Digest.Pure.MD5 etag :: Middleware
src/Hack/Contrib/Middleware/File.hs view
@@ -3,22 +3,20 @@ module Hack.Contrib.Middleware.File (file) where +import Data.Default+import Data.List (isInfixOf)+import Data.Maybe import Hack-import Hack.Contrib.Utils-import Hack.Contrib.Response import Hack.Contrib.Constants import Hack.Contrib.Mime--import MPSUTF8+import Hack.Contrib.Response+import Hack.Contrib.Utils+import MPS import Prelude hiding ((.), (^), (>), (+), (/), readFile)--import Data.Default-import Data.Maybe-import Data.List (isInfixOf) import System.Directory import System.FilePath- import qualified Data.ByteString.Lazy.Char8 as B+ file :: Maybe String -> Middleware file root _ = \env -> do
src/Hack/Contrib/Middleware/Head.hs view
@@ -1,12 +1,12 @@ module Hack.Contrib.Middleware.Head (head) where import Hack-import Hack.Contrib.Utils import Hack.Contrib.Response--import MPSUTF8+import Hack.Contrib.Utils+import MPS.Light import Prelude hiding ((.), (^), (>), head) import qualified Data.ByteString.Lazy.Char8 as B+ head :: Middleware head app = \env -> do
src/Hack/Contrib/Middleware/Hub.hs view
@@ -1,18 +1,21 @@ {-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE CPP #-} -- the entire logging module is stolen from -- [innate](http://github.com/manveru/innate/tree/master) module Hack.Contrib.Middleware.Hub where -import MPSUTF8+import Data.Maybe+import Data.Time+import MPS import Prelude hiding ((.), (^), (>), (+))-+import Text.PrettyPrint.ANSI.Leijen import Text.Printf++#ifdef UNIX import System.Posix.Process (getProcessID)-import Data.Maybe-import Text.PrettyPrint.ANSI.Leijen-import Data.Time+#endif data Severity = Debug@@ -34,8 +37,16 @@ hub stream formatter program = \message severity -> do time <- now- pid <- getProcessID ^ from_i+ pid <- get_pid stream $ formatter severity time pid program message++get_pid :: IO Int+get_pid =+#ifdef UNIX+ getProcessID ^ from_i+#else+ return (-1)+#endif simple_logger :: (String -> IO ()) -> String -> Logger simple_logger = flip hub simple_formatter
src/Hack/Contrib/Middleware/Inspect.hs view
@@ -3,7 +3,7 @@ module Hack.Contrib.Middleware.Inspect (inspect) where import Hack-import MPSUTF8+import MPS.Light import Prelude hiding ((.), (^)) inspect :: Middleware
src/Hack/Contrib/Middleware/Lambda.hs view
@@ -4,16 +4,17 @@ module Hack.Contrib.Middleware.Lambda (lambda) where +import Data.Default import Hack-import Hack.Contrib.Utils-import Hack.Contrib.Response import Hack.Contrib.Constants--import MPSUTF8+import Hack.Contrib.Response+import Hack.Contrib.Utils+import MPS+import MPS.Heavy+import MPS.TH import Prelude hiding ((.), (^), (>), (+))-import Data.Default- import qualified Data.ByteString.Lazy.Char8 as B+ data64 :: String data64 = [$here|
src/Hack/Contrib/Middleware/Lucky.hs view
@@ -4,15 +4,15 @@ module Hack.Contrib.Middleware.Lucky (lucky) where +import Data.Default import Hack-import Hack.Contrib.Utils-import Hack.Contrib.Response import Hack.Contrib.Constants--import MPSUTF8+import Hack.Contrib.Response+import Hack.Contrib.Utils+import MPS+import MPS.Heavy+import MPS.TH import Prelude hiding ((.), (^), (>), (+))-import Data.Default- import qualified Data.ByteString.Lazy.Char8 as B lucky :: Middleware
src/Hack/Contrib/Middleware/NotFound.hs view
@@ -4,7 +4,7 @@ import Hack.Contrib.Response import Hack.Contrib.Constants -import MPSUTF8+import MPS.Light import Prelude hiding ((.), (^), (>), (+)) import Data.Default
src/Hack/Contrib/Middleware/RegexpRouter.hs view
@@ -3,13 +3,12 @@ module Hack.Contrib.Middleware.RegexpRouter (regexp_router) where +import Data.Maybe import Hack import Hack.Contrib.Utils--import MPSUTF8-import Prelude hiding ((.), (^), (>)) import List (find)-import Data.Maybe+import MPS+import Prelude hiding ((.), (^), (>)) type RoutePath = (String, Application)
src/Hack/Contrib/Middleware/ShowExceptions.hs view
@@ -2,19 +2,16 @@ module Hack.Contrib.Middleware.ShowExceptions (show_exceptions) where ++import Data.Default+import Data.Maybe import Hack-import Hack.Contrib.Utils import Hack.Contrib.Middleware.Hub--import MPSUTF8+import Hack.Contrib.Utils+import MPS.Light import Prelude hiding ((.), (^), (>), log)--import Data.Maybe-import Data.Default- import System.IO import System.IO.Error- import qualified Data.ByteString.Lazy.Char8 as B program :: String
src/Hack/Contrib/Middleware/ShowStatus.hs view
@@ -12,17 +12,17 @@ module Hack.Contrib.Middleware.ShowStatus (show_status) where ++import Data.Maybe import Hack-import Hack.Contrib.Utils import Hack.Contrib.Constants import Hack.Contrib.Request hiding (body) import Hack.Contrib.Response--import MPSUTF8+import Hack.Contrib.Utils+import MPS+import MPS.Heavy+import MPS.TH import Prelude hiding ((.), (^), (>), head)--import Data.Maybe- import qualified Data.ByteString.Lazy.Char8 as B show_status :: Middleware
src/Hack/Contrib/Middleware/SimpleAccessLogger.hs view
@@ -1,13 +1,13 @@ module Hack.Contrib.Middleware.SimpleAccessLogger (simple_access_logger) where +import Data.Maybe import Hack-import Hack.Contrib.Utils-import Hack.Contrib.Request import Hack.Contrib.Middleware.Hub--import MPSUTF8+import Hack.Contrib.Request+import Hack.Contrib.Utils+import MPS.Light import Prelude hiding ((.), (^), (>), log)-import Data.Maybe+ program :: String program = "SimpleAccessLogger"
src/Hack/Contrib/Middleware/Static.hs view
@@ -6,14 +6,13 @@ module Hack.Contrib.Middleware.Static (static) where +import Data.Maybe import Hack-import Hack.Contrib.Utils import Hack.Contrib.Middleware.File (file)--import MPSUTF8-import Prelude hiding ((.), (^), (>), (+))-import Data.Maybe+import Hack.Contrib.Utils import List (find, isPrefixOf)+import MPS.Light+import Prelude hiding ((.), (^), (>), (+)) static :: Maybe String -> [String] -> Middleware static root urls app = \env -> do
src/Hack/Contrib/Middleware/URLMap.hs view
@@ -14,10 +14,10 @@ import Hack import Hack.Contrib.Utils--import MPSUTF8-import Prelude hiding ((.), (^), (>)) import List (find, isPrefixOf)+import MPS.Light+import Prelude hiding ((.), (^), (>))+ type RoutePath = (String, Application)
src/Hack/Contrib/Mime.hs view
@@ -1,8 +1,8 @@ module Hack.Contrib.Mime where -import qualified Data.Map as M-import MPSUTF8+import MPS.Light import Prelude hiding ((.))+import qualified Data.Map as M lookup_mime_type :: String -> Maybe String lookup_mime_type = flip M.lookup mime_types
src/Hack/Contrib/Request.hs view
@@ -2,20 +2,16 @@ module Hack.Contrib.Request where +import Data.ByteString.Lazy.Char8 (ByteString)+import Data.Maybe import Hack hiding (body) import Hack.Contrib.Constants--import Prelude hiding ((.), (^), (>), (+))-import MPSUTF8 import Hack.Contrib.Utils-import Data.Maybe-import Network.CGI.Protocol+import MPS import Network.CGI.Cookie-import Data.ByteString.Lazy.Char8 (ByteString)+import Network.CGI.Protocol+import Prelude hiding ((.), (^), (>), (+)) import qualified Data.ByteString.Lazy.Char8 as B---- import qualified Happstack.Server.MessageWrap as HM--- import qualified Happstack.Server.HTTP.Types as HT body :: Env -> ByteString body = hack_input
src/Hack/Contrib/Response.hs view
@@ -2,16 +2,15 @@ module Hack.Contrib.Response where +import Data.ByteString.Lazy.Char8 (ByteString)+import Data.Maybe import Hack-import Hack.Contrib.Utils import Hack.Contrib.Constants--import MPSUTF8+import Hack.Contrib.Utils+import MPS.Light import Prelude hiding ((.), (^), (>), (+))--import Data.Maybe-import Data.ByteString.Lazy.Char8 (ByteString) import qualified Data.ByteString.Lazy.Char8 as B+ redirect :: String -> Maybe Int -> Response -> Response redirect target code =
src/Hack/Contrib/Utils.hs view
@@ -3,22 +3,19 @@ module Hack.Contrib.Utils where +import Control.Arrow ((<<<))+import Data.ByteString.Lazy.Char8 (ByteString)+import Data.Default+import Data.List (lookup)+import Data.Time import Hack import Hack.Contrib.Constants--import MPSUTF8-import Prelude hiding ((.), (^), (>), lookup, (+), (/))-+import MPS.Light import Network.URI hiding (path)-import Data.Default--import Control.Arrow ((<<<))-import qualified Data.Map as M-import Data.Time-import Data.Maybe-import Data.List (lookup)-import Data.ByteString.Lazy.Char8 (ByteString)+import Prelude hiding ((.), (^), (>), lookup, (+), (/))+import System.Locale (defaultTimeLocale) import qualified Data.ByteString.Lazy.Char8 as B+import qualified Data.Map as M empty_app :: Application empty_app = return def@@ -62,8 +59,15 @@ show_status_message :: Int -> Maybe String show_status_message x = status_code.M.lookup x +now :: IO UTCTime+now = getCurrentTime+ httpdate :: UTCTime -> String httpdate x = x.format_time "%a, %d %b %Y %X GMT"+++format_time :: String -> UTCTime -> String+format_time = formatTime defaultTimeLocale request_method :: Env -> RequestMethod script_name :: Env -> String