packages feed

warp 3.0.8 → 3.0.9

raw patch · 4 files changed

+24/−1 lines, 4 files

Files

ChangeLog.md view
@@ -1,3 +1,7 @@+## 3.0.9++* Add runEnv: like run but uses $PORT [#334](https://github.com/yesodweb/wai/pull/334)+ ## 3.0.5.2  * [Pass the Request to settingsOnException handlers when available. #326](https://github.com/yesodweb/wai/pull/326)
Network/Wai/Handler/Warp.hs view
@@ -20,6 +20,7 @@ module Network.Wai.Handler.Warp (     -- * Run a Warp server     run+  , runEnv   , runSettings   , runSettingsSocket   , runSettingsConnection
Network/Wai/Handler/Warp/Run.hs view
@@ -35,6 +35,7 @@ import qualified Network.Wai.Handler.Warp.Timeout as T import Network.Wai.Handler.Warp.Types import Network.Wai.Internal (ResponseReceived (ResponseReceived))+import System.Environment (getEnvironment) import System.IO.Error (isFullErrorType, ioeGetErrorType)  #if WINDOWS@@ -70,6 +71,23 @@ -- 'defaultSettings'. run :: Port -> Application -> IO () run p = runSettings defaultSettings { settingsPort = p }++-- | Run an 'Application' on the port present in the @PORT@ environment variable+--+-- Uses the 'Port' given when the variable is unset.+--+-- Since 3.0.9+runEnv :: Port -> Application -> IO ()+runEnv p app = do+    mp <- fmap (lookup "PORT") getEnvironment++    maybe (run p app) runReadPort mp++  where+    runReadPort :: String -> IO ()+    runReadPort sp = case reads sp of+        ((p', _):_) -> run p' app+        _ -> fail $ "Invalid value in $PORT: " ++ sp  -- | Run an 'Application' with the given 'Settings'. runSettings :: Settings -> Application -> IO ()
warp.cabal view
@@ -1,5 +1,5 @@ Name:                warp-Version:             3.0.8+Version:             3.0.9 Synopsis:            A fast, light-weight web server for WAI applications. License:             MIT License-file:        LICENSE