From b3b8a1cdfdc583159c117ebe76e3c6a4eb57114b Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 3 Apr 2015 20:38:56 -0400 Subject: avoid progress bar for url download with --quiet --- Messages/Progress.hs | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'Messages') 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 -- cgit v1.2.3