on master help sign in
Added a --nobanner flag to supress the banner.
386753dcswords
src/Idris/AbsSyntax.hs+11
@@ -421,6 +421,17 @@ setREPL t = do i <- getIState
421 let opt' = opts { opt_repl = t }
421 let opt' = opts { opt_repl = t }
422 putIState $ i { idris_options = opt' }
422 putIState $ i { idris_options = opt' }
423
423
424+setNoBanner :: Bool -> Idris ()
425+setNoBanner n = do i <- getIState
426+ let opts = idris_options i
427+ let opt' = opts {opt_nobanner = n}
428+ putIState $ i { idris_options = opt' }
429+
430+getNoBanner :: Idris Bool
431+getNoBanner = do i <- getIState
432+ let opts = idris_options i
433+ return (opt_nobanner opts)
434+
424setQuiet :: Bool -> Idris ()
435setQuiet :: Bool -> Idris ()
425setQuiet q = do i <- getIState
436setQuiet q = do i <- getIState
426 let opts = idris_options i
437 let opts = idris_options i
src/Idris/AbsSyntaxTree.hs+3
@@ -37,6 +37,7 @@ data IOption = IOption { opt_logLevel :: Int,
37 opt_errContext :: Bool,
37 opt_errContext :: Bool,
38 opt_repl :: Bool,
38 opt_repl :: Bool,
39 opt_verbose :: Bool,
39 opt_verbose :: Bool,
40+ opt_nobanner :: Bool,
40 opt_quiet :: Bool,
41 opt_quiet :: Bool,
41 opt_codegen :: Codegen,
42 opt_codegen :: Codegen,
42 opt_outputTy :: OutputType,
43 opt_outputTy :: OutputType,
@@ -57,6 +58,7 @@ defaultOpts = IOption { opt_logLevel = 0
57 , opt_errContext = False
58 , opt_errContext = False
58 , opt_repl = True
59 , opt_repl = True
59 , opt_verbose = True
60 , opt_verbose = True
61+ , opt_nobanner = False
60 , opt_quiet = False
62 , opt_quiet = False
61 , opt_codegen = ViaC
63 , opt_codegen = ViaC
62 , opt_outputTy = Executable
64 , opt_outputTy = Executable
@@ -256,6 +258,7 @@ data Opt = Filename String
256 | Ver
258 | Ver
257 | Usage
259 | Usage
258 | Quiet
260 | Quiet
261+ | NoBanner
259 | ColourREPL Bool
262 | ColourREPL Bool
260 | Ideslave
263 | Ideslave
261 | ShowLibs
264 | ShowLibs
src/Idris/REPL.hs+3−1
@@ -937,6 +937,7 @@ parseCodegen _ = error "unknown codegen" -- FIXME: partial function
937
937
938parseArgs :: [String] -> [Opt]
938parseArgs :: [String] -> [Opt]
939parseArgs [] = []
939parseArgs [] = []
940+parseArgs ("--nobanner":ns) = NoBanner : (parseArgs ns)
940parseArgs ("--quiet":ns) = Quiet : (parseArgs ns)
941parseArgs ("--quiet":ns) = Quiet : (parseArgs ns)
941parseArgs ("--ideslave":ns) = Ideslave : (parseArgs ns)
942parseArgs ("--ideslave":ns) = Ideslave : (parseArgs ns)
942parseArgs ("--client":ns) = [Client (showSep " " ns)]
943parseArgs ("--client":ns) = [Client (showSep " " ns)]
@@ -1078,6 +1079,7 @@ idrisMain :: [Opt] -> Idris ()
1078idrisMain opts =
1079idrisMain opts =
1079 do let inputs = opt getFile opts
1080 do let inputs = opt getFile opts
1080 let quiet = Quiet `elem` opts
1081 let quiet = Quiet `elem` opts
1082+ let nobanner = NoBanner `elem` opts
1081 let idesl = Ideslave `elem` opts
1083 let idesl = Ideslave `elem` opts
1082 let runrepl = not (NoREPL `elem` opts)
1084 let runrepl = not (NoREPL `elem` opts)
1083 let output = opt getOutput opts
1085 let output = opt getOutput opts
@@ -1139,7 +1141,7 @@ idrisMain opts =
1139 return ()
1141 return ()
1140 when (not (NoPrelude `elem` opts)) $ do x <- loadModule stdout "Prelude"
1142 when (not (NoPrelude `elem` opts)) $ do x <- loadModule stdout "Prelude"
1141 return ()
1143 return ()
1142− when (runrepl && not quiet && not idesl && not (isJust script)) $ iputStrLn banner
1144+ when (runrepl && not quiet && not idesl && not (isJust script) && not nobanner) $ iputStrLn banner
1143 ist <- getIState
1145 ist <- getIState
1144
1146
1145 loadInputs stdout inputs
1147 loadInputs stdout inputs