Remove help check from parseFlags (redundant), add version check in parseFlags, add CPP flag to access VERSION_python_kernel in Flags.hs

This commit is contained in:
Nicholas Luo 2016-02-11 21:57:56 +08:00
parent d1c84ee2d3
commit a70ae834b6

View File

@ -1,4 +1,4 @@
{-# LANGUAGE NoImplicitPrelude, DeriveFunctor #-}
{-# LANGUAGE CPP, NoImplicitPrelude, DeriveFunctor #-}
module IHaskell.Flags (
IHaskellMode(..),
@ -32,6 +32,7 @@ data Argument = ConfFile String -- ^ A file with commands to load at startup
| GhcLibDir String -- ^ Where to find the GHC libraries.
| KernelDebug -- ^ Spew debugging output from the kernel.
| Help -- ^ Display help text.
| Version -- ^ Display version text.
| ConvertFrom String
| ConvertTo String
| ConvertFromFormat NotebookFormat
@ -70,8 +71,8 @@ parseFlags flags =
in case modeIndex of
Nothing ->
-- Treat no mode as 'console'.
if "--help" `elem` flags
then Left $ showText (Wrap 100) $ helpText [] HelpFormatAll ihaskellArgs
if "--version" `elem` flags || "-V" `elem` flags
then Left VERSION_ipython_kernel
else process ihaskellArgs flags
Just 0 -> process ihaskellArgs flags
@ -177,10 +178,12 @@ lhsStyleTex = LhsStyle "" "" "\\begin{code}" "\\end{code}" "\\begin{verbatim}" "
ihaskellArgs :: Mode Args
ihaskellArgs =
let descr = "Haskell for Interactive Computing."
let noMode = mode "IHaskell" defaultReport descr noArgs [helpFlag, versionFlag]
defaultReport = Args (ShowHelp helpStr) []
descr = "Haskell for Interactive Computing."
helpFlag = flagHelpSimple (add Help)
versionFlag = flagVersion (add Version)
helpStr = showText (Wrap 100) $ helpText [] HelpFormatAll ihaskellArgs
onlyHelp = [flagHelpSimple (add Help)]
noMode = mode "IHaskell" (Args (ShowHelp helpStr) []) descr noArgs onlyHelp
in noMode { modeGroupModes = toGroup allModes }
where
add flag (Args mode flags) = Args mode $ flag : flags