on master help sign in
Merge pull request #675 from cgswords/master

[Issue 590] Added a --nobanner flag to supress the banner

commit027bd1538102f6b61c36587ab7104dbd42f0ae26 authorEdwin Brady <edwin.brady@gmail.com> dateWed 27 Nov 2013, 12:08 (13 years ago) parent280b265386753d
3 files changed+17−1
src/Idris/AbsSyntax.hs+11 src/Idris/AbsSyntaxTree.hs+3 src/Idris/REPL.hs+3−1
src/Idris/AbsSyntax.hs+11
@@ -426,6 +426,17 @@ setREPL t = do i <- getIState
426426 let opt' = opts { opt_repl = t }
427427 putIState $ i { idris_options = opt' }
428428
429+setNoBanner :: Bool -> Idris ()
430+setNoBanner n = do i <- getIState
431+ let opts = idris_options i
432+ let opt' = opts {opt_nobanner = n}
433+ putIState $ i { idris_options = opt' }
434+
435+getNoBanner :: Idris Bool
436+getNoBanner = do i <- getIState
437+ let opts = idris_options i
438+ return (opt_nobanner opts)
439+
429440setQuiet :: Bool -> Idris ()
430441setQuiet q = do i <- getIState
431442 let opts = idris_options i
src/Idris/AbsSyntaxTree.hs+3
@@ -37,6 +37,7 @@ data IOption = IOption { opt_logLevel :: Int,
3737 opt_errContext :: Bool,
3838 opt_repl :: Bool,
3939 opt_verbose :: Bool,
40+ opt_nobanner :: Bool,
4041 opt_quiet :: Bool,
4142 opt_codegen :: Codegen,
4243 opt_outputTy :: OutputType,
@@ -57,6 +58,7 @@ defaultOpts = IOption { opt_logLevel = 0
5758 , opt_errContext = False
5859 , opt_repl = True
5960 , opt_verbose = True
61+ , opt_nobanner = False
6062 , opt_quiet = False
6163 , opt_codegen = ViaC
6264 , opt_outputTy = Executable
@@ -257,6 +259,7 @@ data Opt = Filename String
257259 | Ver
258260 | Usage
259261 | Quiet
262+ | NoBanner
260263 | ColourREPL Bool
261264 | Ideslave
262265 | ShowLibs
src/Idris/REPL.hs+3−1
@@ -944,6 +944,7 @@ parseCodegen _ = error "unknown codegen" -- FIXME: partial function
944944
945945parseArgs :: [String] -> [Opt]
946946parseArgs [] = []
947+parseArgs ("--nobanner":ns) = NoBanner : (parseArgs ns)
947948parseArgs ("--quiet":ns) = Quiet : (parseArgs ns)
948949parseArgs ("--ideslave":ns) = Ideslave : (parseArgs ns)
949950parseArgs ("--client":ns) = [Client (showSep " " ns)]
@@ -1085,6 +1086,7 @@ idrisMain :: [Opt] -> Idris ()
10851086idrisMain opts =
10861087 do let inputs = opt getFile opts
10871088 let quiet = Quiet `elem` opts
1089+ let nobanner = NoBanner `elem` opts
10881090 let idesl = Ideslave `elem` opts
10891091 let runrepl = not (NoREPL `elem` opts)
10901092 let output = opt getOutput opts
@@ -1146,7 +1148,7 @@ idrisMain opts =
11461148 return ()
11471149 when (not (NoPrelude `elem` opts)) $ do x <- loadModule stdout "Prelude"
11481150 return ()
1149− when (runrepl && not quiet && not idesl && not (isJust script)) $ iputStrLn banner
1151+ when (runrepl && not quiet && not idesl && not (isJust script) && not nobanner) $ iputStrLn banner
11501152 ist <- getIState
11511153
11521154 loadInputs stdout inputs