allow using Aeson for streaming JSON output
Keeping Text.JSON use for now, because it seems a better fit for most of the commands, which don't use very structured JSON objects, but just output whatever fields suites them. But this lets Aeson be used when a more structured data type is available to serialize to JSON.
This commit is contained in:
parent
fdd87d8e55
commit
a030d0a8b7
10 changed files with 52 additions and 33 deletions
|
@ -72,6 +72,7 @@ import Remote.List
|
|||
import Config
|
||||
import Git.Types (RemoteName)
|
||||
import qualified Git
|
||||
import Utility.JSONStream
|
||||
|
||||
{- Map from UUIDs of Remotes to a calculated value. -}
|
||||
remoteMap :: (Remote -> v) -> Annex (M.Map UUID v)
|
||||
|
@ -203,7 +204,7 @@ prettyPrintUUIDsWith
|
|||
-> Annex String
|
||||
prettyPrintUUIDsWith optfield header descm showval uuidvals = do
|
||||
hereu <- getUUID
|
||||
maybeShowJSON [(header, map (jsonify hereu) uuidvals)]
|
||||
maybeShowJSON $ JSONObject [(header, map (jsonify hereu) uuidvals)]
|
||||
return $ unwords $ map (\u -> "\t" ++ prettify hereu u ++ "\n") uuidvals
|
||||
where
|
||||
finddescription u = M.findWithDefault "" u descm
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue