imp: ui, web, cli, all cli commands now show the general flags grouped

And cli/ui/web each have their own more specific help flags.
This commit is contained in:
Simon Michael 2024-05-28 23:34:12 -10:00
parent ffb52e3032
commit a366f3aeaa
23 changed files with 69 additions and 62 deletions

View File

@ -69,22 +69,31 @@ uiflags = [
-- ,flagNone ["no-elide"] (setboolopt "no-elide") "don't compress empty parent accounts on one line"
--uimode :: Mode RawOpts
uimode = (mode "hledger-ui" (setopt "command" "ui" def)
"browse accounts, postings and entries in a full-window TUI"
(argsFlag "[--cash|--bs|--is|--all|--register=ACCT] [QUERY]") []){
modeGroupFlags = Group {
groupUnnamed = uiflags
,groupHidden = hiddenflags
++
[flagNone ["future"] (setboolopt "forecast") "old flag, use --forecast instead"
,flagNone ["menu"] (setboolopt "menu") "old flag, menu screen is now the default"
]
,groupNamed = [(generalflagsgroup1)]
}
,modeHelpSuffix=[
-- "Reads your ~/.hledger.journal file, or another specified by $LEDGER_FILE or -f, and starts the full-window TUI."
]
}
uimode =
(mode "hledger-ui" (setopt "command" "ui" def)
"browse accounts, postings and entries in a full-window TUI"
(argsFlag "[--cash|--bs|--is|--all|--register=ACCT] [QUERY]") [])
{modeGroupFlags = Group {
groupUnnamed = uiflags
,groupHidden = hiddenflags
++
[flagNone ["future"] (setboolopt "forecast") "old flag, use --forecast instead"
,flagNone ["menu"] (setboolopt "menu") "old flag, menu screen is now the default"
]
,groupNamed = mkgeneralflagsgroups1 uihelpflags
}
,modeHelpSuffix=[
-- "Reads your ~/.hledger.journal file, or another specified by $LEDGER_FILE or -f, and starts the full-window TUI."
]
}
uihelpflags :: [Flag RawOpts]
uihelpflags = [
flagNone ["version"] (setboolopt "version") "show version information"
,flagNone ["help","h"] (setboolopt "help") "show command line help"
,flagNone ["man"] (setboolopt "man") "show the hledger-ui manual with man"
,flagNone ["info"] (setboolopt "info") "show the hledger-ui manual with info"
]
-- hledger-ui options, used in hledger-ui and above
data UIOpts = UIOpts

View File

@ -112,19 +112,20 @@ webmode =
{ modeGroupFlags =
Group
{ groupUnnamed = webflags
, groupHidden =
hiddenflags
-- ++
-- [ flagNone
-- ["binary-filename"]
-- (setboolopt "binary-filename")
-- "show the download filename for this executable, and exit"
-- ]
, groupNamed = [generalflagsgroup1]
, groupHidden = hiddenflags
, groupNamed = mkgeneralflagsgroups1 webhelpflags
}
, modeHelpSuffix = []
}
webhelpflags :: [Flag RawOpts]
webhelpflags = [
flagNone ["version"] (setboolopt "version") "show version information"
,flagNone ["help","h"] (setboolopt "help") "show command line help"
,flagNone ["man"] (setboolopt "man") "show the hledger-web manual with man"
,flagNone ["info"] (setboolopt "info") "show the hledger-web manual with info"
]
-- hledger-web options, used in hledger-web and above
data WebOpts = WebOpts
{ serve_ :: !Bool

View File

@ -108,9 +108,9 @@ import Hledger.Cli.Version
-- | The overall cmdargs mode describing hledger's command-line options and subcommands.
mainmode addons = defMode {
modeNames = [progname ++ " [CMD]"]
modeNames = [progname ++ " [COMMAND]"]
,modeArgs = ([], Just $ argsFlag "[ARGS]")
,modeHelp = unlines ["hledger's main command line interface. Runs builtin commands and other hledger executables. Type \"hledger\" to list available commands."]
,modeHelp = unlines ["hledger's main command line interface. Run with no ARGS to list commands."]
,modeGroupModes = Group {
-- subcommands in the unnamed group, shown first:
groupUnnamed = [
@ -122,12 +122,8 @@ mainmode addons = defMode {
,groupHidden = map fst builtinCommands ++ map addonCommandMode addons
}
,modeGroupFlags = Group {
-- flags in named groups:
groupNamed = [
( "General input flags", inputflags)
,("\nGeneral reporting flags", reportflags)
,("\nGeneral help flags", helpflags)
]
-- flags in named groups: (keep synced with Hledger.Cli.CliOptions.highlightHelp)
groupNamed = cligeneralflagsgroups1
-- flags in the unnamed group, shown last:
,groupUnnamed = []
-- flags handled but not shown in the help:
@ -135,15 +131,16 @@ mainmode addons = defMode {
[detailedversionflag]
-- ++ inputflags -- included here so they'll not raise a confusing error if present with no COMMAND
}
,modeHelpSuffix = "Examples:" :
map (progname ++) [
" list commands"
," CMD [--] [OPTS] [ARGS] run a command (use -- with addon commands)"
,"-CMD [OPTS] [ARGS] or run addon commands directly"
," -h show general usage"
," CMD -h show command usage"
," help [MANUAL] show any of the hledger manuals in various formats"
]
,modeHelpSuffix = []
-- "Examples:" :
-- map (progname ++) [
-- " list commands"
-- ," CMD [--] [OPTS] [ARGS] run a command (use -- with addon commands)"
-- ,"-CMD [OPTS] [ARGS] or run addon commands directly"
-- ," -h show general usage"
-- ," CMD -h show command usage"
-- ," help [MANUAL] show any of the hledger manuals in various formats"
-- ]
}
-- | Let's go!

View File

@ -48,7 +48,7 @@ accountsmode = hledgerCommandMode
++ flattreeflags False ++
[flagReq ["drop"] (\s opts -> Right $ setopt "drop" s opts) "N" "flat mode: omit N leading account name parts"]
)
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[QUERY]")

View File

@ -19,7 +19,7 @@ import Hledger.Cli.CliOptions
activitymode = hledgerCommandMode
$(embedFileRelative "Hledger/Cli/Commands/Activity.txt")
[]
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[QUERY]")

View File

@ -61,7 +61,7 @@ aregistermode = hledgerCommandMode
,outputFormatFlag ["txt","html","csv","tsv","json"]
,outputFileFlag
])
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "ACCTPAT [QUERY]")

View File

@ -336,7 +336,7 @@ balancemode = hledgerCommandMode
,outputFileFlag
]
)
[generalflagsgroup1]
cligeneralflagsgroups1
(hiddenflags ++
[ flagNone ["commodity-column"] (setboolopt "commodity-column")
"show commodity symbols in a separate column, amounts as bare numbers, one row per commodity"

View File

@ -22,7 +22,7 @@ checkmode :: Mode RawOpts
checkmode = hledgerCommandMode
$(embedFileRelative "Hledger/Cli/Commands/Check.txt")
[]
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[CHECKS]")

View File

@ -53,7 +53,7 @@ closemode = hledgerCommandMode
,flagReq ["open-acct"] (\s opts -> Right $ setopt "open-acct" s opts) "ACCT" "set opening transaction's source account"
,roundFlag
]
[generalflagsgroup1]
cligeneralflagsgroups1
(hiddenflags
++ -- keep supporting old flag names for compatibility
[flagNone ["closing"] (setboolopt "close") "old spelling of --close"

View File

@ -26,7 +26,7 @@ import Hledger.Cli.CliOptions
codesmode = hledgerCommandMode
$(embedFileRelative "Hledger/Cli/Commands/Codes.txt")
[]
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[QUERY]")

View File

@ -25,7 +25,7 @@ import Hledger.Cli.CliOptions
descriptionsmode = hledgerCommandMode
$(embedFileRelative "Hledger/Cli/Commands/Descriptions.txt")
[]
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[QUERY]")

View File

@ -24,7 +24,7 @@ importmode = hledgerCommandMode
[flagNone ["catchup"] (setboolopt "catchup") "just mark all transactions as already imported"
,flagNone ["dry-run"] (setboolopt "dry-run") "just show the transactions to be imported"
]
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "FILE [...]")

View File

@ -26,7 +26,7 @@ import Hledger.Cli.CliOptions
notesmode = hledgerCommandMode
$(embedFileRelative "Hledger/Cli/Commands/Notes.txt")
[]
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[QUERY]")

View File

@ -28,7 +28,7 @@ payeesmode = hledgerCommandMode
[flagNone ["declared"] (setboolopt "declared") "show payees declared with payee directives"
,flagNone ["used"] (setboolopt "used") "show payees referenced by transactions"
]
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[QUERY]")

View File

@ -22,7 +22,7 @@ pricesmode = hledgerCommandMode
[flagNone ["show-reverse"] (setboolopt "show-reverse")
"also show the prices inferred by reversing known prices"
]
[generalflagsgroup1]
cligeneralflagsgroups1
(hiddenflags ++
[flagNone ["costs"] (setboolopt "infer-market-prices") "deprecated, use --infer-market-prices instead"
,flagNone ["inverted-costs"] (setboolopt "show-reverse") "deprecated, use --show-reverse instead"

View File

@ -51,7 +51,7 @@ printmode = hledgerCommandMode
,outputFormatFlag ["txt","beancount","csv","tsv","json","sql"]
,outputFileFlag
])
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[QUERY]")

View File

@ -62,7 +62,7 @@ registermode = hledgerCommandMode
,outputFormatFlag ["txt","csv","tsv","json"]
,outputFileFlag
])
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[QUERY]")

View File

@ -29,7 +29,7 @@ rewritemode = hledgerCommandMode
"add a posting to ACCT, which may be parenthesised. AMTEXPR is either a literal amount, or *N which means the transaction's first matched amount multiplied by N (a decimal number). Two spaces separate ACCT and AMTEXPR."
,flagNone ["diff"] (setboolopt "diff") "generate diff suitable as an input for patch tool"
]
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[QUERY] --add-posting \"ACCT AMTEXPR\" ...")

View File

@ -44,7 +44,7 @@ roimode = hledgerCommandMode
,flagReq ["profit-loss","pnl"] (\s opts -> Right $ setopt "pnl" s opts) "QUERY"
"query to select profit-and-loss or appreciation/valuation transactions"
]
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[QUERY]")

View File

@ -43,7 +43,7 @@ statsmode = hledgerCommandMode
[ flagNone ["verbose","v"] (setboolopt "verbose") "show more detailed output"
,flagReq ["output-file","o"] (\s opts -> Right $ setopt "output-file" s opts) "FILE" "write output to FILE."
]
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[QUERY]")

View File

@ -21,7 +21,7 @@ tagsmode = hledgerCommandMode
[flagNone ["values"] (setboolopt "values") "list tag values instead of tag names"
,flagNone ["parsed"] (setboolopt "parsed") "show tags/values in the order they were parsed, including duplicates"
]
[generalflagsgroup1]
cligeneralflagsgroups1
hiddenflags
([], Just $ argsFlag "[TAGREGEX [QUERY...]]")

View File

@ -97,7 +97,7 @@ compoundBalanceCommandMode CompoundBalanceCommandSpec{..} =
,outputFormatFlag ["txt","html","csv","tsv","json"]
,outputFileFlag
])
[generalflagsgroup1]
cligeneralflagsgroups1
(hiddenflags ++
[ flagNone ["commodity-column"] (setboolopt "commodity-column")
"show commodity symbols in a separate column, amounts as bare numbers, one row per commodity"

View File

@ -83,7 +83,7 @@ $ hledger -f somefile
# ** 6. with -h, and possibly other common flags present, show general usage
$ hledger -h --version -f /dev/null
> /^hledger \[CMD\]/
> /^hledger \[COMMAND\]/
# ** 7. with -h before a COMMAND, show command usage
$ hledger -h balance --cost