print,reg,balcmds: list output formats accurately in --help (#689)

Also:
- tweak the unsupported output format message
- Hledger.Cli.CliOptions no longer exports outputflags
This commit is contained in:
Simon Michael 2020-05-23 13:54:41 -07:00
parent 5f1a864c20
commit 61bec588d2
6 changed files with 23 additions and 9 deletions

View File

@ -15,7 +15,7 @@ module Hledger.Cli.CliOptions (
hiddenflags, hiddenflags,
inputflags, inputflags,
reportflags, reportflags,
outputflags, -- outputflags,
outputFormatFlag, outputFormatFlag,
outputFileFlag, outputFileFlag,
generalflagsgroup1, generalflagsgroup1,
@ -192,9 +192,18 @@ hiddenflags = [
] ]
-- | Common output-related flags: --output-file, --output-format... -- | Common output-related flags: --output-file, --output-format...
outputflags = [outputFormatFlag, outputFileFlag]
outputFormatFlag = flagReq ["output-format","O"] (\s opts -> Right $ setopt "output-format" s opts) "FMT" "select the output format. Supported formats:\ntxt, csv, html." -- outputflags = [outputFormatFlag, outputFileFlag]
outputFileFlag = flagReq ["output-file","o"] (\s opts -> Right $ setopt "output-file" s opts) "FILE" "write output to FILE. A file extension matching one of the above formats selects that format."
outputFormatFlag :: [String] -> Flag RawOpts
outputFormatFlag fmts = flagReq
["output-format","O"] (\s opts -> Right $ setopt "output-format" s opts) "FMT"
("select the output format. Supported formats:\n" ++ intercalate ", " fmts ++ ".")
outputFileFlag :: Flag RawOpts
outputFileFlag = flagReq
["output-file","o"] (\s opts -> Right $ setopt "output-file" s opts) "FILE"
"write output to FILE. A file extension matching one of the above formats selects that format."
argsFlag :: FlagHelp -> Arg RawOpts argsFlag :: FlagHelp -> Arg RawOpts
argsFlag desc = flagArg (\s opts -> Right $ setopt "args" s opts) desc argsFlag desc = flagArg (\s opts -> Right $ setopt "args" s opts) desc

View File

@ -295,8 +295,9 @@ balancemode = hledgerCommandMode
,flagNone ["invert"] (setboolopt "invert") "display all amounts with reversed sign" ,flagNone ["invert"] (setboolopt "invert") "display all amounts with reversed sign"
,flagNone ["transpose"] (setboolopt "transpose") "transpose rows and columns" ,flagNone ["transpose"] (setboolopt "transpose") "transpose rows and columns"
,flagNone ["percent", "%"] (setboolopt "percent") "express values in percentage of each column's total" ,flagNone ["percent", "%"] (setboolopt "percent") "express values in percentage of each column's total"
,outputFormatFlag ["txt","html","csv","json"]
,outputFileFlag
] ]
++ outputflags
) )
[generalflagsgroup1] [generalflagsgroup1]
hiddenflags hiddenflags

View File

@ -39,7 +39,9 @@ printmode = hledgerCommandMode
"show all amounts explicitly" "show all amounts explicitly"
,flagNone ["new"] (setboolopt "new") ,flagNone ["new"] (setboolopt "new")
"show only newer-dated transactions added in each file since last run" "show only newer-dated transactions added in each file since last run"
] ++ outputflags) ,outputFormatFlag ["txt","csv","json"]
,outputFileFlag
])
[generalflagsgroup1] [generalflagsgroup1]
hiddenflags hiddenflags
([], Just $ argsFlag "[QUERY]") ([], Just $ argsFlag "[QUERY]")

View File

@ -51,7 +51,9 @@ registermode = hledgerCommandMode
#endif #endif
++ " or $COLUMNS). -wN,M sets description width as well." ++ " or $COLUMNS). -wN,M sets description width as well."
) )
] ++ outputflags) ,outputFormatFlag ["txt","csv","json"]
,outputFileFlag
])
[generalflagsgroup1] [generalflagsgroup1]
hiddenflags hiddenflags
([], Just $ argsFlag "[QUERY]") ([], Just $ argsFlag "[QUERY]")

View File

@ -108,7 +108,7 @@ compoundBalanceCommandMode CompoundBalanceCommandSpec{..} =
,flagNone ["pretty-tables"] (setboolopt "pretty-tables") "use unicode when displaying tables" ,flagNone ["pretty-tables"] (setboolopt "pretty-tables") "use unicode when displaying tables"
,flagNone ["sort-amount","S"] (setboolopt "sort-amount") "sort by amount instead of account code/name" ,flagNone ["sort-amount","S"] (setboolopt "sort-amount") "sort by amount instead of account code/name"
,flagNone ["percent", "%"] (setboolopt "percent") "express values in percentage of each column's total" ,flagNone ["percent", "%"] (setboolopt "percent") "express values in percentage of each column's total"
,outputFormatFlag ,outputFormatFlag ["txt","html","csv","json"]
,outputFileFlag ,outputFileFlag
] ]
[generalflagsgroup1] [generalflagsgroup1]

View File

@ -60,7 +60,7 @@ import Hledger.Utils
-- | Standard error message for a bad output format specified with -O/-o. -- | Standard error message for a bad output format specified with -O/-o.
unsupportedOutputFormatError :: String -> String unsupportedOutputFormatError :: String -> String
unsupportedOutputFormatError fmt = "Sorry, output format \""++fmt++"\" is unrecognised or not yet implemented for this report." unsupportedOutputFormatError fmt = "Sorry, output format \""++fmt++"\" is unrecognised or not yet implemented for this report or report mode."
-- | Parse the user's specified journal file(s) as a Journal, maybe apply some -- | Parse the user's specified journal file(s) as a Journal, maybe apply some
-- transformations according to options, and run a hledger command with it. -- transformations according to options, and run a hledger command with it.