pandoc-server.cgi: allow setting timeout
via PANDOC_SERVER_TIMEOUT environment variable.
This commit is contained in:
parent
5092292217
commit
d3aa51b1ee
3 changed files with 9 additions and 3 deletions
|
@ -15,7 +15,8 @@ import qualified Control.Exception as E
|
||||||
import Text.Pandoc.App (convertWithOpts, defaultOpts, options, parseOptions)
|
import Text.Pandoc.App (convertWithOpts, defaultOpts, options, parseOptions)
|
||||||
import Text.Pandoc.Error (handleError)
|
import Text.Pandoc.Error (handleError)
|
||||||
import Text.Pandoc.Server (ServerOpts(..), parseServerOpts, app)
|
import Text.Pandoc.Server (ServerOpts(..), parseServerOpts, app)
|
||||||
import System.Environment (getProgName)
|
import Safe (readDef)
|
||||||
|
import System.Environment (getProgName, lookupEnv)
|
||||||
import qualified Network.Wai.Handler.CGI as CGI
|
import qualified Network.Wai.Handler.CGI as CGI
|
||||||
import qualified Network.Wai.Handler.Warp as Warp
|
import qualified Network.Wai.Handler.Warp as Warp
|
||||||
import Network.Wai.Middleware.Timeout (timeout)
|
import Network.Wai.Middleware.Timeout (timeout)
|
||||||
|
@ -23,8 +24,9 @@ import Network.Wai.Middleware.Timeout (timeout)
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = E.handle (handleError . Left) $ do
|
main = E.handle (handleError . Left) $ do
|
||||||
prg <- getProgName
|
prg <- getProgName
|
||||||
|
cgiTimeout <- maybe 2 (readDef 2) <$> lookupEnv "PANDOC_SERVER_TIMEOUT"
|
||||||
case prg of
|
case prg of
|
||||||
"pandoc-server.cgi" -> CGI.run (timeout 2 app)
|
"pandoc-server.cgi" -> CGI.run (timeout cgiTimeout app)
|
||||||
"pandoc-server" -> do
|
"pandoc-server" -> do
|
||||||
sopts <- parseServerOpts
|
sopts <- parseServerOpts
|
||||||
Warp.run (serverPort sopts) (timeout (serverTimeout sopts) app)
|
Warp.run (serverPort sopts) (timeout (serverTimeout sopts) app)
|
||||||
|
|
|
@ -42,6 +42,9 @@ does, however, impose certain limitations:
|
||||||
`--timeout SECONDS`
|
`--timeout SECONDS`
|
||||||
: Timeout in seconds, after which a conversion is killed. Default: 2.
|
: Timeout in seconds, after which a conversion is killed. Default: 2.
|
||||||
|
|
||||||
|
When `pandoc-server` is run as a CGI program, this option
|
||||||
|
can be set via the `PANDOC_SERVER_TIMEOUT` environment variable.
|
||||||
|
|
||||||
`--help`
|
`--help`
|
||||||
: Print this help.
|
: Print this help.
|
||||||
|
|
||||||
|
|
|
@ -790,7 +790,8 @@ executable pandoc
|
||||||
buildable: True
|
buildable: True
|
||||||
other-modules: Paths_pandoc
|
other-modules: Paths_pandoc
|
||||||
build-depends: wai-extra >= 3.0.24,
|
build-depends: wai-extra >= 3.0.24,
|
||||||
warp
|
warp,
|
||||||
|
safe
|
||||||
|
|
||||||
test-suite test-pandoc
|
test-suite test-pandoc
|
||||||
import: common-executable
|
import: common-executable
|
||||||
|
|
Loading…
Reference in a new issue