summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Messages/Progress.hs18
-rw-r--r--Remote/Git.hs4
2 files changed, 13 insertions, 9 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
diff --git a/Remote/Git.hs b/Remote/Git.hs
index 1561d7596..ff5e733ce 100644
--- a/Remote/Git.hs
+++ b/Remote/Git.hs
@@ -421,7 +421,7 @@ copyFromRemote :: Remote -> Key -> AssociatedFile -> FilePath -> MeterUpdate ->
copyFromRemote r key file dest p
| Git.repoIsHttp (repo r) = unVerified $
Annex.Content.downloadUrl key p (keyUrls r key) dest
- | otherwise = concurrentMetered (Just p) key $
+ | otherwise = commandMetered (Just p) key $
copyFromRemote' r key file dest
copyFromRemote' :: Remote -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex (Bool, Verification)
@@ -531,7 +531,7 @@ copyFromRemoteCheap _ _ _ _ = return False
{- Tries to copy a key's content to a remote's annex. -}
copyToRemote :: Remote -> Key -> AssociatedFile -> MeterUpdate -> Annex Bool
copyToRemote r key file meterupdate =
- concurrentMetered (Just meterupdate) key $
+ commandMetered (Just meterupdate) key $
copyToRemote' r key file
copyToRemote' :: Remote -> Key -> AssociatedFile -> MeterUpdate -> Annex Bool