In particular this clears it before "transfer stalled". If an external
special remote uses showInfo while progress is displayed, it will also
improve display of that.
Generally this will avoid all such problems in the future..
Sponsored-by: Svenne Krap on Patreon
where
go st
| sideActionBlock st == StartBlock = do
- go' st
+ go'
let st' = st { sideActionBlock = InBlock }
Annex.changeState $ \s -> s { Annex.output = st' }
| sideActionBlock st == InBlock = return ()
- | otherwise = go' st
- go' st = do
- liftIO $ clearProgressMeter st
- outputMessage JSON.none $ encodeBS' $ "(" ++ m ++ "...)\n"
+ | otherwise = go'
+ go' = outputMessage JSON.none $ encodeBS' $ "(" ++ m ++ "...)\n"
showStoringStateAction :: Annex ()
showStoringStateAction = showSideAction "recording state in git"
outputMessage' :: (JSONBuilder -> MessageState -> Annex Bool) -> JSONBuilder -> S.ByteString -> Annex ()
outputMessage' jsonoutputter jsonbuilder msg = withMessageState $ \s -> case outputType s of
NormalOutput
- | concurrentOutputEnabled s -> concurrentMessage s False (decodeBS msg) q
- | otherwise -> liftIO $ flushed $ S.putStr msg
+ | concurrentOutputEnabled s -> do
+ liftIO $ clearProgressMeter s
+ concurrentMessage s False (decodeBS msg) q
+ | otherwise -> do
+ liftIO $ clearProgressMeter s
+ liftIO $ flushed $ S.putStr msg
JSONOutput _ -> void $ jsonoutputter jsonbuilder s
QuietOutput -> q
SerializedOutput h _ -> do