hledger-1.32.3: Command-line interface for the hledger accounting system
Safe HaskellSafe-Inferred
LanguageHaskell2010

Hledger.Cli.Commands

Description

hledger's built-in commands, and helpers for printing the commands list.

New built-in commands should be added in four places below: the export list, the import list, builtinCommands, commandsList.

Synopsis

Documentation

testcmd :: CliOpts -> Journal -> IO () Source #

The test command, which runs the hledger and hledger-lib packages' unit tests. This command also accepts tasty test runner options, written after a -- (double hyphen).

Unlike most hledger commands, this one does not read the user's journal. A Journal argument remains in the type signature, but it should not be used (and would raise an error).

builtinCommands :: [(Mode RawOpts, CliOpts -> Journal -> IO ())] Source #

The cmdargs subcommand mode (for command-line parsing) and IO action (for doing the command's work) for each builtin command. Command actions take parsed CLI options and a (lazy) finalised journal.

builtinCommandNames :: [String] Source #

All names and aliases of the builtin commands.

findBuiltinCommand :: String -> Maybe (Mode RawOpts, CliOpts -> Journal -> IO ()) Source #

Look up a builtin command's mode and action by exact command name or alias.

knownAddonCommands :: [String] Source #

Canonical names of the known addon commands which have a slot in the commands list, in alphabetical order.

knownCommands :: [String] Source #

Canonical names of all commands which have a slot in the commands list, in alphabetical order. These include the builtin commands and the known addon commands.

printCommandsList :: String -> [String] -> IO () Source #

Print the commands list, with a pager if appropriate, customising the commandsList template above with the given version string and the installed addons. Uninstalled known addons will be removed from the list, installed known addons will have the + prefix removed, and installed unknown addons will be added under Misc.