From 57c0205107300c0c937f63a22ff68cb9470002b6 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Tue, 9 May 2023 10:09:16 -1000 Subject: [PATCH] imp: cli: make some reporting flags toggle on/off when repeated This can be useful to override defaults in scripts. These flags will now toggle when repeated on the command line: --invert --transpose -r/--related -%/--percent -E/--empty -N/--no-total -T/--row-total -A/--average -S/--sort-amount --- hledger-lib/Hledger/Reports/ReportOptions.hs | 18 +++++++++--------- hledger/hledger.m4.md | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/hledger-lib/Hledger/Reports/ReportOptions.hs b/hledger-lib/Hledger/Reports/ReportOptions.hs index e18d223d4..0f76959db 100644 --- a/hledger-lib/Hledger/Reports/ReportOptions.hs +++ b/hledger-lib/Hledger/Reports/ReportOptions.hs @@ -243,13 +243,13 @@ rawOptsToReportOpts d rawopts = ,infer_prices_ = boolopt "infer-market-prices" rawopts ,depth_ = maybeposintopt "depth" rawopts ,date2_ = boolopt "date2" rawopts - ,empty_ = boolopt "empty" rawopts + ,empty_ = toggleopt "empty" rawopts ,no_elide_ = boolopt "no-elide" rawopts ,real_ = boolopt "real" rawopts ,format_ = format ,querystring_ = querystring - ,average_ = boolopt "average" rawopts - ,related_ = boolopt "related" rawopts + ,average_ = toggleopt "average" rawopts + ,related_ = toggleopt "related" rawopts ,txn_dates_ = boolopt "txn-dates" rawopts ,balancecalc_ = balancecalcopt rawopts ,balanceaccum_ = balanceaccumopt rawopts @@ -257,15 +257,15 @@ rawOptsToReportOpts d rawopts = ,accountlistmode_ = accountlistmodeopt rawopts ,drop_ = posintopt "drop" rawopts ,declared_ = boolopt "declared" rawopts - ,row_total_ = boolopt "row-total" rawopts - ,no_total_ = boolopt "no-total" rawopts + ,row_total_ = toggleopt "row-total" rawopts + ,no_total_ = toggleopt "no-total" rawopts ,show_costs_ = boolopt "show-costs" rawopts - ,sort_amount_ = boolopt "sort-amount" rawopts - ,percent_ = boolopt "percent" rawopts - ,invert_ = boolopt "invert" rawopts + ,sort_amount_ = toggleopt "sort-amount" rawopts + ,percent_ = toggleopt "percent" rawopts + ,invert_ = toggleopt "invert" rawopts ,pretty_ = pretty ,color_ = useColorOnStdout -- a lower-level helper - ,transpose_ = boolopt "transpose" rawopts + ,transpose_ = toggleopt "transpose" rawopts ,layout_ = layoutopt rawopts } diff --git a/hledger/hledger.m4.md b/hledger/hledger.m4.md index 241be574b..fba36d118 100644 --- a/hledger/hledger.m4.md +++ b/hledger/hledger.m4.md @@ -114,6 +114,20 @@ General reporting options: _reportingoptions_ +## Option repetition + +If options are repeated in a command line, hledger will generally use the last (right-most) occurence. +Some of the boolean flags will toggle if repeated; these include: +`--invert`, +`--transpose`, +`-r/--related`, +`-%/--percent`, +`-E/--empty`, +`-N/--no-total`, +`-T/--row-total`, +`-A/--average`, and +`-S/--sort-amount`. + ## Command options To see options for a particular command, including command-specific options, run: `hledger COMMAND -h`.