Commit b2c8b1f0 authored by Nicholas Luo's avatar Nicholas Luo

Create showDefault to show version when flagged

parent a70ae834
...@@ -69,7 +69,7 @@ main = do ...@@ -69,7 +69,7 @@ main = do
Right args -> ihaskell args Right args -> ihaskell args
ihaskell :: Args -> IO () 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 ConvertLhs args) = showingHelp ConvertLhs args $ convert args
ihaskell (Args InstallKernelSpec args) = showingHelp InstallKernelSpec args $ do ihaskell (Args InstallKernelSpec args) = showingHelp InstallKernelSpec args $ do
let kernelSpecOpts = parseKernelArgs args let kernelSpecOpts = parseKernelArgs args
...@@ -82,6 +82,14 @@ ihaskell a@(Args (Kernel Nothing) _) = do ...@@ -82,6 +82,14 @@ ihaskell a@(Args (Kernel Nothing) _) = do
hPutStrLn stderr "This may be a bug!" hPutStrLn stderr "This may be a bug!"
hPrint stderr a 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 :: IHaskellMode -> [Argument] -> IO () -> IO ()
showingHelp mode flags act = showingHelp mode flags act =
case find (== Help) flags of case find (== Help) flags of
......
{-# LANGUAGE CPP, NoImplicitPrelude, DeriveFunctor #-} {-# LANGUAGE NoImplicitPrelude, DeriveFunctor #-}
module IHaskell.Flags ( module IHaskell.Flags (
IHaskellMode(..), IHaskellMode(..),
...@@ -58,7 +58,7 @@ data NotebookFormat = LhsMarkdown ...@@ -58,7 +58,7 @@ data NotebookFormat = LhsMarkdown
deriving (Eq, Show) deriving (Eq, Show)
-- Which mode IHaskell is being invoked in. -- Which mode IHaskell is being invoked in.
data IHaskellMode = ShowHelp String data IHaskellMode = ShowDefault String
| InstallKernelSpec | InstallKernelSpec
| ConvertLhs | ConvertLhs
| Kernel (Maybe String) | Kernel (Maybe String)
...@@ -71,9 +71,7 @@ parseFlags flags = ...@@ -71,9 +71,7 @@ parseFlags flags =
in case modeIndex of in case modeIndex of
Nothing -> Nothing ->
-- Treat no mode as 'console'. -- Treat no mode as 'console'.
if "--version" `elem` flags || "-V" `elem` flags process ihaskellArgs flags
then Left VERSION_ipython_kernel
else process ihaskellArgs flags
Just 0 -> process ihaskellArgs flags Just 0 -> process ihaskellArgs flags
Just idx -> Just idx ->
...@@ -179,7 +177,7 @@ lhsStyleTex = LhsStyle "" "" "\\begin{code}" "\\end{code}" "\\begin{verbatim}" " ...@@ -179,7 +177,7 @@ lhsStyleTex = LhsStyle "" "" "\\begin{code}" "\\end{code}" "\\begin{verbatim}" "
ihaskellArgs :: Mode Args ihaskellArgs :: Mode Args
ihaskellArgs = ihaskellArgs =
let noMode = mode "IHaskell" defaultReport descr noArgs [helpFlag, versionFlag] let noMode = mode "IHaskell" defaultReport descr noArgs [helpFlag, versionFlag]
defaultReport = Args (ShowHelp helpStr) [] defaultReport = Args (ShowDefault helpStr) []
descr = "Haskell for Interactive Computing." descr = "Haskell for Interactive Computing."
helpFlag = flagHelpSimple (add Help) helpFlag = flagHelpSimple (add Help)
versionFlag = flagVersion (add Version) versionFlag = flagVersion (add Version)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment