From d1f62f0f2e56f9881c83ffe3ef9ab14c944187a7 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Thu, 4 Jun 2020 15:13:28 -0700 Subject: [PATCH] print, reg, balcmds: show json output pretty-printed --- hledger/Hledger/Cli/Commands/Balance.hs | 7 +++---- hledger/Hledger/Cli/Commands/Print.hs | 5 ++--- hledger/Hledger/Cli/Commands/Register.hs | 3 +-- hledger/Hledger/Cli/CompoundBalanceCommand.hs | 3 +-- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/hledger/Hledger/Cli/Commands/Balance.hs b/hledger/Hledger/Cli/Commands/Balance.hs index f87360ba5..dc9b5acfe 100644 --- a/hledger/Hledger/Cli/Commands/Balance.hs +++ b/hledger/Hledger/Cli/Commands/Balance.hs @@ -254,7 +254,6 @@ module Hledger.Cli.Commands.Balance ( ) where import Data.Aeson (toJSON) -import Data.Aeson.Text (encodeToLazyText) import Data.List import Data.Maybe --import qualified Data.Map as Map @@ -321,7 +320,7 @@ balance opts@CliOpts{rawopts_=rawopts,reportopts_=ropts@ReportOpts{..}} j = do assrt = not $ ignore_assertions_ $ inputopts_ opts render = case fmt of "txt" -> budgetReportAsText ropts - "json" -> (++"\n") . T.unpack . TL.toStrict . encodeToLazyText . toJSON + "json" -> (++"\n") . TL.unpack . jsonPrettyText . toJSON _ -> const $ error' $ unsupportedOutputFormatError fmt writeOutput opts $ render budgetreport @@ -332,7 +331,7 @@ balance opts@CliOpts{rawopts_=rawopts,reportopts_=ropts@ReportOpts{..}} j = do "txt" -> multiBalanceReportAsText ropts "csv" -> (++"\n") . printCSV . multiBalanceReportAsCsv ropts "html" -> (++"\n") . TL.unpack . L.renderText . multiBalanceReportAsHtml ropts - "json" -> (++"\n") . T.unpack . TL.toStrict . encodeToLazyText . toJSON + "json" -> (++"\n") . TL.unpack . jsonPrettyText . toJSON _ -> const $ error' $ unsupportedOutputFormatError fmt writeOutput opts $ render report @@ -347,7 +346,7 @@ balance opts@CliOpts{rawopts_=rawopts,reportopts_=ropts@ReportOpts{..}} j = do render = case fmt of "txt" -> balanceReportAsText "csv" -> \ropts r -> (++ "\n") $ printCSV $ balanceReportAsCsv ropts r - "json" -> const $ (++"\n") . T.unpack . TL.toStrict . encodeToLazyText . toJSON + "json" -> const $ (++"\n") . TL.unpack . jsonPrettyText . toJSON _ -> const $ error' $ unsupportedOutputFormatError fmt writeOutput opts $ render ropts report diff --git a/hledger/Hledger/Cli/Commands/Print.hs b/hledger/Hledger/Cli/Commands/Print.hs index ba8698333..9ce9c896c 100644 --- a/hledger/Hledger/Cli/Commands/Print.hs +++ b/hledger/Hledger/Cli/Commands/Print.hs @@ -16,11 +16,10 @@ module Hledger.Cli.Commands.Print ( where import Data.Aeson (toJSON) -import Data.Aeson.Text (encodeToLazyText) import Data.Maybe (isJust) import Data.Text (Text) import qualified Data.Text as T -import qualified Data.Text.Lazy as T (toStrict) +import qualified Data.Text.Lazy as TL import System.Console.CmdArgs.Explicit import Hledger.Read.CsvReader (CSV, printCSV) @@ -61,7 +60,7 @@ printEntries opts@CliOpts{reportopts_=ropts} j = do render = case fmt of "txt" -> entriesReportAsText opts "csv" -> (++"\n") . printCSV . entriesReportAsCsv - "json" -> (++"\n") . T.unpack . T.toStrict . encodeToLazyText . toJSON + "json" -> (++"\n") . TL.unpack . jsonPrettyText . toJSON _ -> const $ error' $ unsupportedOutputFormatError fmt writeOutput opts $ render $ entriesReport ropts q j diff --git a/hledger/Hledger/Cli/Commands/Register.hs b/hledger/Hledger/Cli/Commands/Register.hs index e8ad2b685..54b04fe10 100644 --- a/hledger/Hledger/Cli/Commands/Register.hs +++ b/hledger/Hledger/Cli/Commands/Register.hs @@ -19,7 +19,6 @@ module Hledger.Cli.Commands.Register ( ) where import Data.Aeson (toJSON) -import Data.Aeson.Text (encodeToLazyText) import Data.List import Data.Maybe -- import Data.Text (Text) @@ -65,7 +64,7 @@ register opts@CliOpts{reportopts_=ropts} j = do let fmt = outputFormatFromOpts opts render | fmt=="txt" = postingsReportAsText | fmt=="csv" = const ((++"\n") . printCSV . postingsReportAsCsv) - | fmt=="json" = const ((++"\n") . T.unpack . TL.toStrict . encodeToLazyText . toJSON) + | fmt=="json" = const ((++"\n") . TL.unpack . jsonPrettyText . toJSON) | otherwise = const $ error' $ unsupportedOutputFormatError fmt writeOutput opts $ render opts $ postingsReport ropts (queryFromOpts d ropts) j diff --git a/hledger/Hledger/Cli/CompoundBalanceCommand.hs b/hledger/Hledger/Cli/CompoundBalanceCommand.hs index 52cc8fe43..cf658a14e 100644 --- a/hledger/Hledger/Cli/CompoundBalanceCommand.hs +++ b/hledger/Hledger/Cli/CompoundBalanceCommand.hs @@ -14,7 +14,6 @@ module Hledger.Cli.CompoundBalanceCommand ( ) where import Data.Aeson (toJSON) -import Data.Aeson.Text (encodeToLazyText) import Data.List (foldl') import Data.Maybe import qualified Data.Text as TS @@ -241,7 +240,7 @@ compoundBalanceCommand CompoundBalanceCommandSpec{..} opts@CliOpts{reportopts_=r "txt" -> compoundBalanceReportAsText ropts' cbr "csv" -> printCSV (compoundBalanceReportAsCsv ropts cbr) ++ "\n" "html" -> (++"\n") $ TL.unpack $ L.renderText $ compoundBalanceReportAsHtml ropts cbr - "json" -> (++"\n") $ TS.unpack $ TL.toStrict $ encodeToLazyText $ toJSON cbr + "json" -> (++"\n") $ TL.unpack $ jsonPrettyText $ toJSON cbr _ -> error' $ unsupportedOutputFormatError fmt -- | Summarise one or more (inclusive) end dates, in a way that's