make noMessages disable closing of json object in --json mode

This allows things like Command.Find to use noMessages and generate their
own complete json objects. Previouly, Command.Find managed that only via a
hack, which wasn't compatable with batch mode.

Only Command.Find, Command.Smudge, and Commange.Status use noMessages
currently, and none except for Command.Find are impacted by this change.

Fixes find --json --batch output
This commit is contained in:
Joey Hess 2016-01-20 14:07:13 -04:00
parent 7aac76d40e
commit 70b8cad9c8
Failed to extract signature
7 changed files with 26 additions and 11 deletions

View file

@ -124,7 +124,7 @@ includeCommandAction a = account =<< tryIO (callCommandAction a)
account (Right False) = incerr
account (Left err) = do
toplevelWarning True (show err)
showEndFail
implicitMessage showEndFail
incerr
incerr = do
Annex.incError
@ -146,8 +146,8 @@ callCommandAction' = start
cleanup = stage $ status
stage = (=<<)
skip = return Nothing
failure = showEndFail >> return (Just False)
status r = showEndResult r >> return (Just r)
failure = implicitMessage showEndFail >> return (Just False)
status r = implicitMessage (showEndResult r) >> return (Just r)
{- Do concurrent output when that has been requested. -}
allowConcurrentOutput :: Annex a -> Annex a