diff options
author | Joey Hess <joeyh@joeyh.name> | 2015-04-03 20:38:56 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2015-04-03 20:38:56 -0400 |
commit | b3b8a1cdfdc583159c117ebe76e3c6a4eb57114b (patch) | |
tree | 59fea875dd28b37bfe78f157108523b4c8e01305 /Messages | |
parent | f1cb897e78ca0f972a909ebd0258e1f25e13fb66 (diff) |
avoid progress bar for url download with --quiet
Diffstat (limited to 'Messages')
-rw-r--r-- | Messages/Progress.hs | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/Messages/Progress.hs b/Messages/Progress.hs index acc237017..cb55a8c28 100644 --- a/Messages/Progress.hs +++ b/Messages/Progress.hs @@ -49,20 +49,34 @@ showProgressDots :: Annex () showProgressDots = handleMessage q $ flushed $ putStr "." +{- Runs a command, that normally outputs progress to the specified handle. + - + - In quiet mode, normal output is suppressed. stderr is fed through the + - mkStderrEmitter. If the progress is output to stderr, then stderr is + - dropped, unless the command fails in which case the last line of output + - to stderr will be shown. + -} +progressCommand :: Handle -> FilePath -> [CommandParam] -> Annex Bool +progressCommand progresshandle cmd params = undefined + mkProgressHandler :: MeterUpdate -> Annex ProgressHandler mkProgressHandler meter = ProgressHandler - <$> quietmode + <$> commandProgressDisabled <*> (stderrhandler <$> mkStderrEmitter) <*> pure meter where - quietmode = withOutputType $ \t -> return $ case t of - QuietOutput -> True - ProgressOutput -> True - _ -> False stderrhandler emitter h = unlessM (hIsEOF h) $ do void $ emitter =<< hGetLine h stderrhandler emitter h +{- Should commands that normally output progress messages have that + - output disabled? -} +commandProgressDisabled :: Annex Bool +commandProgressDisabled = withOutputType $ \t -> return $ case t of + QuietOutput -> True + ProgressOutput -> True + _ -> False + {- Generates an IO action that can be used to emit stderr. - - When a progress meter is displayed, this takes care to avoid |