diff options
-rw-r--r-- | Messages/Progress.hs | 18 | ||||
-rw-r--r-- | Remote/Git.hs | 4 |
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 |