hledger/hledger/Hledger/Cli/Commands/Check.md
Simon Michael 7510d99aec check: accept case-insensitive prefixes as arguments
Might a bad idea, but avoiding wasteful typing..
2021-01-05 16:18:24 -08:00

2.6 KiB

check
Check for various kinds of errors in your data.

_FLAGS

hledger provides a number of built-in error checks to help prevent problems in your data. Some of these are run automatically; or, you can use this check command to run them on demand, with no output and a zero exit code if all is well. Specify their names (or a prefix) as argument(s).

Some examples:

hledger check      # basic checks
hledger check -s   # basic + strict checks
hledger check ordereddates payees  # basic + two other checks

Here are the checks currently available:

Basic checks

These checks are always run automatically, by (almost) all hledger commands, including check:

  • parseable - data files are well-formed and can be successfully parsed

  • autobalanced - all transactions are balanced, inferring missing amounts where necessary, and possibly converting commodities using transaction prices or automatically-inferred transaction prices

  • assertions - all balance assertions in the journal are passing. (This check can be disabled with -I/--ignore-assertions.)

Strict checks

These additional checks are run when the -s/--strict (strict mode) flag is used. Or, they can be run by giving their names as arguments to check:

Other checks

These checks can be run only by giving their names as arguments to check. They are more specialised and not desirable for everyone, therefore optional:

  • ordereddates - transactions are ordered by date (similar to the old check-dates command)

  • payees - all payees used by transactions have been declared

  • uniqueleafnames - all account leaf names are unique (similar to the old check-dupes command).

Custom checks

A few more checks are are available as separate add-on commands, in https://github.com/simonmichael/hledger/tree/master/bin:

  • hledger-check-tagfiles - all tag values containing / (a forward slash) exist as file paths

  • hledger-check-fancyassertions - more complex balance assertions are passing

You could make similar scripts to perform your own custom checks. See: Cookbook -> Scripting.