server: add --version.

This commit is contained in:
John MacFarlane 2022-08-15 09:57:08 -07:00
parent 3f2b44b694
commit 3c2b97df32
2 changed files with 17 additions and 2 deletions

View file

@ -1,15 +1,20 @@
module Main where
import PandocServer (app)
import Text.Pandoc (pandocVersion)
import Control.Monad (when)
import qualified Network.Wai.Handler.CGI as CGI
import qualified Network.Wai.Handler.Warp as Warp
import Network.Wai.Middleware.Timeout (timeout)
import System.Environment (getProgName)
import Options.Applicative
import System.Exit (exitWith, ExitCode(ExitSuccess))
import Data.Text as T
data Opts = Opts
{ optPort :: Warp.Port,
optTimeout :: Int } -- in seconds
optTimeout :: Int, -- seconds
optVersion :: Bool }
options :: Parser Opts
options = Opts
@ -23,6 +28,9 @@ options = Opts
<> value 2
<> metavar "SECONDS"
<> help "Seconds timeout" )
<*> flag False True
( long "version"
<> help "Print version" )
main :: IO ()
main = do
@ -33,6 +41,10 @@ main = do
<> header "pandoc-server - text conversion server" )
opts <- execParser optspec
when (optVersion opts) $ do
putStrLn $ progname <> " " <> T.unpack pandocVersion
exitWith ExitSuccess
let port = optPort opts
let app' = timeout (optTimeout opts) app
if progname == "pandoc-server.cgi"

View file

@ -24,7 +24,10 @@ program, rename it as `pandoc-server.cgi`.
: Timeout in seconds, after which a conversion is killed. Default: 2.
`--help`
: Help
: Print this help.
`--version`
: Print version.
# API