From 112ca28651e4e799ffe0d61933746f7f208dd140 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 10 Apr 2015 15:15:01 -0400 Subject: use built-in progress meters for git when in parallel mode --- Messages/Internal.hs | 2 +- Messages/Progress.hs | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'Messages') diff --git a/Messages/Internal.hs b/Messages/Internal.hs index 1dd856b5e..2495f4fd3 100644 --- a/Messages/Internal.hs +++ b/Messages/Internal.hs @@ -17,7 +17,7 @@ handleMessage json normal = withOutputType go where go NormalOutput = liftIO normal go QuietOutput = q - go ProgressOutput = q + go (ParallelOutput _) = q go JSONOutput = liftIO $ flushed json q :: Monad m => m () diff --git a/Messages/Progress.hs b/Messages/Progress.hs index c563ffa6f..70ed96c5a 100644 --- a/Messages/Progress.hs +++ b/Messages/Progress.hs @@ -26,6 +26,14 @@ metered combinemeterupdate key a = go (keySize key) go (Just size) = meteredBytes combinemeterupdate size a go _ = a (const noop) +{- Use when the progress meter is only desired for parallel + - mode; as when a command's own progress output is preferred. -} +parallelMetered :: Maybe MeterUpdate -> Key -> (MeterUpdate -> Annex a) -> Annex a +parallelMetered combinemeterupdate key a = withOutputType go + where + go (ParallelOutput _) = metered combinemeterupdate key a + go _ = a (fromMaybe (const noop) combinemeterupdate) + {- Shows a progress meter while performing an action on a given number - of bytes. -} meteredBytes :: Maybe MeterUpdate -> Integer -> (MeterUpdate -> Annex a) -> Annex a @@ -99,5 +107,5 @@ mkStderrRelayer = do mkStderrEmitter :: Annex (String -> IO ()) mkStderrEmitter = withOutputType go where - go ProgressOutput = return $ \s -> hPutStrLn stderr ("E: " ++ s) + go (ParallelOutput _) = return $ \s -> hPutStrLn stderr ("E: " ++ s) go _ = return (hPutStrLn stderr) -- cgit v1.2.3