diff --git a/server/Main.hs b/server/Main.hs index 4266519c7..531a0b0a0 100644 --- a/server/Main.hs +++ b/server/Main.hs @@ -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" diff --git a/server/pandoc-server.md b/server/pandoc-server.md index 6d7961ee4..9d6624c29 100644 --- a/server/pandoc-server.md +++ b/server/pandoc-server.md @@ -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