packages feed

warp-dynamic (empty) → 0.0.1

raw patch · 6 files changed

+122/−0 lines, 6 filesdep +basedep +data-defaultdep +dyresetup-changed

Dependencies added: base, data-default, dyre, http-types, wai, warp, warp-dynamic

Files

+ LICENSE view
@@ -0,0 +1,30 @@+Copyright (c) 2012, Hideyuki Tanaka++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++    * Redistributions of source code must retain the above copyright+      notice, this list of conditions and the following disclaimer.++    * Redistributions in binary form must reproduce the above+      copyright notice, this list of conditions and the following+      disclaimer in the documentation and/or other materials provided+      with the distribution.++    * Neither the name of Hideyuki Tanaka nor the names of other+      contributors may be used to endorse or promote products derived+      from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ Network/Wai/Application/Dynamic.hs view
@@ -0,0 +1,44 @@+{-# LANGUAGE RecordWildCards #-}++module Network.Wai.Application.Dynamic (+  Config(..),+  warpd,+  +  def, nullApp,+  ) where++import qualified Config.Dyre as Dyre+import Data.Default+import Data.Monoid+import Network.HTTP.Types+import Network.Wai+import Network.Wai.Handler.Warp++-- | HTTP config+data Config+  = Config+    { warpSettings :: Settings    -- ^ Warp settings+    , application  :: Application -- ^ Application to serve+    }++instance Default Config where+  def = Config+    { warpSettings = defaultSettings+    , application = nullApp+    }++-- | Null application (always returns 404)+nullApp :: Application+nullApp _ = return $ ResponseBuilder status404 [] mempty++-- | dynamic warp app+warpd :: Config -> IO ()+warpd = Dyre.wrapMain $ Dyre.defaultParams+  { Dyre.projectName = "warpd"+  , Dyre.realMain = realMain+  , Dyre.showError = \_ err -> error err+  }++realMain :: Config -> IO ()+realMain Config {..} = do+  runSettings warpSettings application
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ app/Main.hs view
@@ -0,0 +1,4 @@+import Network.Wai.Application.Dynamic++main :: IO ()+main = warpd def
+ config/warpd.hs view
@@ -0,0 +1,9 @@+{-# LANGUAGE OverloadedStrings #-}++import Network.Wai.Application.Dynamic+import Network.Wai.Application.Static++main :: IO ()+main = warpd def+  { application = staticApp defaultFileServerSettings+  }
+ warp-dynamic.cabal view
@@ -0,0 +1,33 @@+name:                warp-dynamic+version:             0.0.1+synopsis:            Dynamic configurable warp HTTP server++description:         Dynamic configurable warp HTTP server++homepage:            http://tanakh.jp+license:             BSD3+license-file:        LICENSE+author:              Hideyuki Tanaka+maintainer:          Hideyuki Tanaka <tanaka.hideyuki@gmail.com>+copyright:           (c) 2012, Hideyuki Tanaka+category:            Network+build-type:          Simple+cabal-version:       >=1.8++extra-source-files:  config/warpd.hs++library+  build-depends:       base           == 4.*+                     , data-default+                     , dyre           == 0.8.*+                     , http-types     == 0.6.*+                     , wai            == 1.1.*+                     , warp           == 1.1.*++  exposed-modules:     Network.Wai.Application.Dynamic++executable warpd+  hs-source-dirs:      app+  main-is:             Main.hs+  build-depends:       base           == 4.*+                     , warp-dynamic