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
|
@ -250,7 +250,7 @@ nostat = return Nothing
|
|||
json :: JSON j => (j -> String) -> StatState j -> String -> StatState String
|
||||
json fmt a desc = do
|
||||
j <- a
|
||||
lift $ maybeShowJSON [(desc, j)]
|
||||
lift $ maybeShowJSON $ JSONObject [(desc, j)]
|
||||
return $ fmt j
|
||||
|
||||
nojson :: StatState String -> String -> StatState String
|
||||
|
@ -374,7 +374,7 @@ transfer_list :: Stat
|
|||
transfer_list = stat desc $ nojson $ lift $ do
|
||||
uuidmap <- Remote.remoteMap id
|
||||
ts <- getTransfers
|
||||
maybeShowJSON [(desc, map (uncurry jsonify) ts)]
|
||||
maybeShowJSON $ JSONObject [(desc, map (uncurry jsonify) ts)]
|
||||
return $ if null ts
|
||||
then "none"
|
||||
else multiLine $
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue