make maybeShowJSON also add to the buffer

This commit is contained in:
Joey Hess 2016-09-09 14:21:06 -04:00
parent 089c592977
commit 4a09b4bbbd
No known key found for this signature in database
GPG key ID: C910D9222512E3C7
2 changed files with 13 additions and 9 deletions

View file

@ -155,15 +155,11 @@ indent = intercalate "\n" . map (\l -> " " ++ l) . lines
{- Shows a JSON chunk only when in json mode. -}
maybeShowJSON :: JSONChunk v -> Annex ()
maybeShowJSON v = withMessageState $ \s -> case outputType s of
JSONOutput -> liftIO $ JSON.add v
_ -> return ()
maybeShowJSON v = void $ withMessageState $ outputJSON (JSON.add v) False
{- Shows a complete JSON value, only when in json mode. -}
showFullJSON :: JSONChunk v -> Annex Bool
showFullJSON v = withMessageState $ \s -> case outputType s of
JSONOutput -> liftIO $ JSON.complete v >> return True
_ -> return False
showFullJSON v = withMessageState $ outputJSON (JSON.complete v) True
{- Performs an action that outputs nonstandard/customized output, and
- in JSON mode wraps its output in JSON.start and JSON.end, so it's

View file

@ -26,8 +26,13 @@ outputMessage' endmessage json msg = withMessageState $ \s -> case outputType s
NormalOutput
| concurrentOutputEnabled s -> concurrentMessage s False msg q
| otherwise -> liftIO $ flushed $ putStr msg
JSONOutput -> void $ outputJSON json endmessage s
QuietOutput -> q
outputJSON :: IO () -> Bool -> MessageState -> Annex Bool
outputJSON json endmessage s = case outputType s of
JSONOutput
| concurrentOutputEnabled s ->
| concurrentOutputEnabled s -> do
-- Buffer json fragments until end is reached.
if endmessage
then do
@ -38,8 +43,11 @@ outputMessage' endmessage json msg = withMessageState $ \s -> case outputType s
json
else Annex.changeState $ \st ->
st { Annex.output = s { jsonBuffer = json : jsonBuffer s } }
| otherwise -> liftIO $ flushed json
QuietOutput -> q
return True
| otherwise -> do
liftIO $ flushed json
return True
_ -> return False
outputError :: String -> Annex ()
outputError msg = withMessageState $ \s ->