From 3636875a5da6159d44a8cf4a7592f535a52f1992 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 17 Jul 2020 14:15:11 -0700 Subject: [PATCH] cli: add -t/-l short flags for --tree/--flat; improve help (#1286) --- hledger/Hledger/Cli/CliOptions.hs | 14 +++++++++----- hledger/Hledger/Cli/Commands/Accounts.hs | 8 ++++---- hledger/Hledger/Cli/Commands/Balance.hs | 2 +- hledger/Hledger/Cli/CompoundBalanceCommand.hs | 2 +- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/hledger/Hledger/Cli/CliOptions.hs b/hledger/Hledger/Cli/CliOptions.hs index f355c8c27..1209a461f 100644 --- a/hledger/Hledger/Cli/CliOptions.hs +++ b/hledger/Hledger/Cli/CliOptions.hs @@ -201,11 +201,15 @@ reportflags = [ ]) ] --- | Flags for selecting flat/tree mode, used in accounts/balance reports. -flattreeflags :: [Flag RawOpts] -flattreeflags = [ - flagNone ["flat"] (setboolopt "flat") "show accounts as a list; amounts exclude subaccounts, except where account is depth-clipped" - ,flagNone ["tree"] (setboolopt "tree") "show accounts as a tree; amounts include subaccounts" +-- | Flags for selecting flat/tree mode, used for reports organised by account. +-- With a True argument, shows some extra help about inclusive/exclusive amounts. +flattreeflags :: Bool -> [Flag RawOpts] +flattreeflags showamounthelp = [ + flagNone ["flat","l"] (setboolopt "flat") + ("show accounts as a flat list (default)" + ++ if showamounthelp then ". Amounts exclude subaccount amounts, except where the account is depth-clipped." else "") + ,flagNone ["tree","t"] (setboolopt "tree") + ("show accounts as a hierarchic tree" ++ if showamounthelp then ". Amounts include subaccount amounts." else "") ] -- | Common flags that are accepted but not shown in --help, diff --git a/hledger/Hledger/Cli/Commands/Accounts.hs b/hledger/Hledger/Cli/Commands/Accounts.hs index e4feb18e2..a62d88eb3 100644 --- a/hledger/Hledger/Cli/Commands/Accounts.hs +++ b/hledger/Hledger/Cli/Commands/Accounts.hs @@ -36,12 +36,12 @@ import Hledger.Cli.CliOptions -- | Command line options for this command. accountsmode = hledgerCommandMode $(embedFileRelative "Hledger/Cli/Commands/Accounts.txt") - [flagNone ["declared"] (setboolopt "declared") "show account names declared with account directives" + ([flagNone ["declared"] (setboolopt "declared") "show account names declared with account directives" ,flagNone ["used"] (setboolopt "used") "show account names referenced by transactions" - ,flagNone ["flat"] (setboolopt "flat") "show full account names, as a list (default)" - ,flagNone ["tree"] (setboolopt "tree") "show short account names, as a tree" - ,flagReq ["drop"] (\s opts -> Right $ setopt "drop" s opts) "N" "flat mode: omit N leading account name parts" ] + ++ flattreeflags False ++ + [flagReq ["drop"] (\s opts -> Right $ setopt "drop" s opts) "N" "flat mode: omit N leading account name parts" + ]) [generalflagsgroup1] hiddenflags ([], Just $ argsFlag "[QUERY]") diff --git a/hledger/Hledger/Cli/Commands/Balance.hs b/hledger/Hledger/Cli/Commands/Balance.hs index c143c6e1e..881c4ede2 100644 --- a/hledger/Hledger/Cli/Commands/Balance.hs +++ b/hledger/Hledger/Cli/Commands/Balance.hs @@ -280,7 +280,7 @@ balancemode = hledgerCommandMode ,flagNone ["historical","H"] (setboolopt "historical") "show historical ending balance in each period (includes postings before report start date)\n " ] - ++ flattreeflags ++ + ++ flattreeflags True ++ [flagReq ["drop"] (\s opts -> Right $ setopt "drop" s opts) "N" "omit N leading account name parts (in flat mode)" ,flagNone ["average","A"] (setboolopt "average") "show a row average column (in multicolumn reports)" ,flagNone ["row-total","T"] (setboolopt "row-total") "show a row total column (in multicolumn reports)" diff --git a/hledger/Hledger/Cli/CompoundBalanceCommand.hs b/hledger/Hledger/Cli/CompoundBalanceCommand.hs index 5526c9337..a0997c509 100644 --- a/hledger/Hledger/Cli/CompoundBalanceCommand.hs +++ b/hledger/Hledger/Cli/CompoundBalanceCommand.hs @@ -65,7 +65,7 @@ compoundBalanceCommandMode CompoundBalanceCommandSpec{..} = ++ defType HistoricalBalance ) ] - ++ flattreeflags ++ + ++ flattreeflags True ++ [flagReq ["drop"] (\s opts -> Right $ setopt "drop" s opts) "N" "flat mode: omit N leading account name parts" ,flagNone ["average","A"] (setboolopt "average") "show a row average column (in multicolumn reports)" ,flagNone ["row-total","T"] (setboolopt "row-total") "show a row total column (in multicolumn reports)"