diff options
| author | John MacFarlane <[email protected]> | 2022-08-18 22:33:19 -0700 |
|---|---|---|
| committer | John MacFarlane <[email protected]> | 2022-08-18 22:33:19 -0700 |
| commit | d3aa51b1ee05163912372cd34863264f74650c97 (patch) | |
| tree | 85dac95a27f36729646094e75946be474dfab681 | |
| parent | 5092292217a2554ebc9c20294b1ee5a694d05b2f (diff) | |
pandoc-server.cgi: allow setting timeout
via PANDOC_SERVER_TIMEOUT environment variable.
| -rw-r--r-- | app/pandoc.hs | 6 | ||||
| -rw-r--r-- | doc/pandoc-server.md | 3 | ||||
| -rw-r--r-- | pandoc.cabal | 3 |
3 files changed, 9 insertions, 3 deletions
diff --git a/app/pandoc.hs b/app/pandoc.hs index 753bea399..305fc405e 100644 --- a/app/pandoc.hs +++ b/app/pandoc.hs @@ -15,7 +15,8 @@ import qualified Control.Exception as E import Text.Pandoc.App (convertWithOpts, defaultOpts, options, parseOptions) import Text.Pandoc.Error (handleError) 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.Warp as Warp import Network.Wai.Middleware.Timeout (timeout) @@ -23,8 +24,9 @@ import Network.Wai.Middleware.Timeout (timeout) main :: IO () main = E.handle (handleError . Left) $ do prg <- getProgName + cgiTimeout <- maybe 2 (readDef 2) <$> lookupEnv "PANDOC_SERVER_TIMEOUT" case prg of - "pandoc-server.cgi" -> CGI.run (timeout 2 app) + "pandoc-server.cgi" -> CGI.run (timeout cgiTimeout app) "pandoc-server" -> do sopts <- parseServerOpts Warp.run (serverPort sopts) (timeout (serverTimeout sopts) app) diff --git a/doc/pandoc-server.md b/doc/pandoc-server.md index a41f13ab7..9977fe70e 100644 --- a/doc/pandoc-server.md +++ b/doc/pandoc-server.md @@ -42,6 +42,9 @@ does, however, impose certain limitations: `--timeout SECONDS` : 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` : Print this help. diff --git a/pandoc.cabal b/pandoc.cabal index 5f24104cd..c4753d714 100644 --- a/pandoc.cabal +++ b/pandoc.cabal @@ -790,7 +790,8 @@ executable pandoc buildable: True other-modules: Paths_pandoc build-depends: wai-extra >= 3.0.24, - warp + warp, + safe test-suite test-pandoc import: common-executable |
