summaryrefslogtreecommitdiff
path: root/Messages
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2016-09-09 16:05:45 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2016-09-09 16:05:45 -0400
commitc5ff422786d7a25a0b2d5680d9b85b5ff27ebd46 (patch)
treeef34e1075352ac5feef2ccdd73c08c53f6143d07 /Messages
parentd1f722e3b0b74a9d9a2e35ac1f47dbca9f7cf606 (diff)
make --json-progress update meter when getting from git remote with rsync
Diffstat (limited to 'Messages')
-rw-r--r--Messages/Progress.hs18
1 files changed, 11 insertions, 7 deletions
diff --git a/Messages/Progress.hs b/Messages/Progress.hs
index 39709a211..14aebe6c9 100644
--- a/Messages/Progress.hs
+++ b/Messages/Progress.hs
@@ -74,13 +74,17 @@ metered othermeter key a = case keySize key of
Nothing -> m
Just om -> combineMeterUpdate m om
-{- Use when the progress meter is only desired for concurrent
- - output; as when a command's own progress output is preferred. -}
-concurrentMetered :: Maybe MeterUpdate -> Key -> (MeterUpdate -> Annex a) -> Annex a
-concurrentMetered combinemeterupdate key a =
- withMessageState $ \s -> if concurrentOutputEnabled s
- then metered combinemeterupdate key a
- else a (fromMaybe nullMeterUpdate combinemeterupdate)
+{- Use when the command's own progress output is preferred.
+ - The command's output will be suppressed and git-annex's progress output
+ - used for concurrent output, and json progress. -}
+commandMetered :: Maybe MeterUpdate -> Key -> (MeterUpdate -> Annex a) -> Annex a
+commandMetered combinemeterupdate key a =
+ withMessageState $ \s -> case outputType s of
+ JSONOutput True -> usemeter
+ NormalOutput | concurrentOutputEnabled s -> usemeter
+ _ -> a (fromMaybe nullMeterUpdate combinemeterupdate)
+ where
+ usemeter = metered combinemeterupdate key a
{- Poll file size to display meter, but only for concurrent output. -}
concurrentMeteredFile :: FilePath -> Maybe MeterUpdate -> Key -> Annex a -> Annex a