Create showDefault to show version when flagged

This commit is contained in:
Nicholas Luo 2016-02-13 14:28:18 +08:00
parent a70ae834b6
commit b2c8b1f059
2 changed files with 13 additions and 7 deletions

View File

@ -69,7 +69,7 @@ main = do
Right args -> ihaskell args
ihaskell :: Args -> IO ()
ihaskell (Args (ShowHelp help) _) = putStrLn help
ihaskell (Args (ShowDefault helpStr) args) = showDefault helpStr args
ihaskell (Args ConvertLhs args) = showingHelp ConvertLhs args $ convert args
ihaskell (Args InstallKernelSpec args) = showingHelp InstallKernelSpec args $ do
let kernelSpecOpts = parseKernelArgs args
@ -82,6 +82,14 @@ ihaskell a@(Args (Kernel Nothing) _) = do
hPutStrLn stderr "This may be a bug!"
hPrint stderr a
showDefault :: String -> [Argument] -> IO ()
showDefault helpStr flags =
case find (== Version) flags of
Just _ ->
putStrLn VERSION_ipython_kernel
Nothing ->
putStrLn helpStr
showingHelp :: IHaskellMode -> [Argument] -> IO () -> IO ()
showingHelp mode flags act =
case find (== Help) flags of

View File

@ -1,4 +1,4 @@
{-# LANGUAGE CPP, NoImplicitPrelude, DeriveFunctor #-}
{-# LANGUAGE NoImplicitPrelude, DeriveFunctor #-}
module IHaskell.Flags (
IHaskellMode(..),
@ -58,7 +58,7 @@ data NotebookFormat = LhsMarkdown
deriving (Eq, Show)
-- Which mode IHaskell is being invoked in.
data IHaskellMode = ShowHelp String
data IHaskellMode = ShowDefault String
| InstallKernelSpec
| ConvertLhs
| Kernel (Maybe String)
@ -71,9 +71,7 @@ parseFlags flags =
in case modeIndex of
Nothing ->
-- Treat no mode as 'console'.
if "--version" `elem` flags || "-V" `elem` flags
then Left VERSION_ipython_kernel
else process ihaskellArgs flags
process ihaskellArgs flags
Just 0 -> process ihaskellArgs flags
Just idx ->
@ -179,7 +177,7 @@ lhsStyleTex = LhsStyle "" "" "\\begin{code}" "\\end{code}" "\\begin{verbatim}" "
ihaskellArgs :: Mode Args
ihaskellArgs =
let noMode = mode "IHaskell" defaultReport descr noArgs [helpFlag, versionFlag]
defaultReport = Args (ShowHelp helpStr) []
defaultReport = Args (ShowDefault helpStr) []
descr = "Haskell for Interactive Computing."
helpFlag = flagHelpSimple (add Help)
versionFlag = flagVersion (add Version)