diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2022-01-03 11:08:14 -0800 |
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2022-01-03 11:08:14 -0800 |
| commit | ca7a3ed5ed31e0c5787926d7b775c8f57c5932a4 (patch) | |
| tree | 33a22fb56faddb8e70968142d610461a21d024fb | |
| parent | cdfdfae4dd06c62631cbaf7c0fc6eefa7545a30b (diff) | |
Issue error with --list-extensions for invalid formats.
Cloess #7797.
| -rw-r--r-- | src/Text/Pandoc/App/CommandLineOptions.hs | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/Text/Pandoc/App/CommandLineOptions.hs b/src/Text/Pandoc/App/CommandLineOptions.hs index f0dee64bc..17db2cb3b 100644 --- a/src/Text/Pandoc/App/CommandLineOptions.hs +++ b/src/Text/Pandoc/App/CommandLineOptions.hs @@ -843,16 +843,22 @@ options = Nothing -> extensionsFromList extList Just fmt -> getAllExtensions $ T.pack fmt let formatName = maybe "markdown" T.pack arg - let defExts = getDefaultExtensions formatName - let showExt x = - (if extensionEnabled x defExts - then '+' - else if extensionEnabled x allExts - then '-' - else ' ') : drop 4 (show x) - mapM_ (UTF8.hPutStrLn stdout . T.pack . showExt) - [ex | ex <- extList, extensionEnabled ex allExts] - exitSuccess ) + if formatName `notElem` + (map fst (readers :: [(Text, Reader PandocPure)]) ++ + map fst (writers :: [(Text, Writer PandocPure)])) + then E.throwIO $ PandocOptionError $ formatName <> + " is not a recognized reader or writer format" + else do + let defExts = getDefaultExtensions formatName + let showExt x = + (if extensionEnabled x defExts + then '+' + else if extensionEnabled x allExts + then '-' + else ' ') : drop 4 (show x) + mapM_ (UTF8.hPutStrLn stdout . T.pack . showExt) + [ex | ex <- extList, extensionEnabled ex allExts] + exitSuccess ) "FORMAT") "" |
