@@ -57,10 +57,13 @@ repl :: IState -- ^ The initial state
5757 -> InputT Idris ()
5858repl orig mods
5959 = H.catch
60− (do let prompt = mkPrompt mods
61− x <- getInputLine (prompt ++ "> ")
60+ (do let quiet = opt_quiet (idris_options orig)
61+ let prompt = if quiet
62+ then ""
63+ else mkPrompt mods ++ "> "
64+ x <- getInputLine prompt
6265 case x of
63− Nothing -> do lift $ iputStrLn "Bye bye"
66+ Nothing -> do lift $ when (not quiet) (iputStrLn "Bye bye")
6467 return ()
6568 Just input -> H.catch
6669 (do ms <- lift $ processInput input orig mods
@@ -86,6 +89,8 @@ lit f = case splitExtension f of
8689processInput :: String -> IState -> [FilePath] -> Idris (Maybe [FilePath])
8790processInput cmd orig inputs
8891 = do i <- getIState
92+ let opts = idris_options i
93+ let quiet = opt_quiet opts
8994 let fn = case inputs of
9095 (f:_) -> f
9196 _ -> ""
@@ -110,7 +115,7 @@ processInput cmd orig inputs
110115 return (Just inputs)
111116 Right Proofs -> do proofs orig
112117 return (Just inputs)
113− Right Quit -> do iputStrLn "Bye bye"
118+ Right Quit -> do when (not quiet) (iputStrLn "Bye bye")
114119 return Nothing
115120 Right cmd -> do idrisCatch (process fn cmd)
116121 (\e -> iputStrLn (show e))
@@ -436,6 +441,7 @@ parseTarget _ = error "unknown target" -- FIXME: partial function
436441
437442parseArgs :: [String] -> [Opt]
438443parseArgs [] = []
444+parseArgs ("--quiet":ns) = Quiet : (parseArgs ns)
439445parseArgs ("--log":lvl:ns) = OLogging (read lvl) : (parseArgs ns)
440446parseArgs ("--noprelude":ns) = NoPrelude : (parseArgs ns)
441447parseArgs ("--check":ns) = NoREPL : (parseArgs ns)
@@ -487,6 +493,7 @@ idris opts = execStateT (idrisMain opts) idrisInit
487493idrisMain :: [Opt] -> Idris ()
488494idrisMain opts =
489495 do let inputs = opt getFile opts
496+ let quiet = Quiet `elem` opts
490497 let runrepl = not (NoREPL `elem` opts)
491498 let output = opt getOutput opts
492499 let newoutput = opt getNewOutput opts
@@ -504,6 +511,7 @@ idrisMain opts =
504511 when (DefaultTotal `elem` opts) $ do i <- getIState
505512 putIState (i { default_total = True })
506513 setREPL runrepl
514+ setQuiet quiet
507515 setVerbose runrepl
508516 setCmdLine opts
509517 setOutputTy outty
@@ -527,7 +535,7 @@ idrisMain opts =
527535 elabPrims
528536 when (not (NoPrelude `elem` opts)) $ do x <- loadModule "Prelude"
529537 return ()
530− when runrepl $ iputStrLn banner
538+ when (runrepl && not quiet) $ iputStrLn banner
531539 ist <- getIState
532540 mods <- mapM loadModule inputs
533541 ok <- noErrors