diff --git a/hledger/Hledger/Cli/Commands/Check.txt b/hledger/Hledger/Cli/Commands/Check.txt index 3ec367f57..a71e39393 100644 --- a/hledger/Hledger/Cli/Commands/Check.txt +++ b/hledger/Hledger/Cli/Commands/Check.txt @@ -1,47 +1,68 @@ check -Check for various kinds of errors in your data. +Check for various kinds of errors in your data. experimental _FLAGS hledger provides a number of built-in error checks to help prevent -problems in your data. Some, but not all, of these are run automatically -before all commands. You can also use this check command to run any of -the available tests. They are named, and run, as follows: +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. Some examples: -hledger check runs the basic checks, like all other commands, but with -no output unless there is a problem. These are: +hledger check # basic checks +hledger check -s # basic + strict checks +hledger check ordereddates uniqueleafnames # basic + specified checks + +Here are the checks currently available: + +Basic checks + +These are always run by this command and other commands: - 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 are passing (except with - -I/--ignore-assertions) -hledger check --strict also runs the additional "strict mode" checks, -which are: +- assertions - all balance assertions in the journal are passing. + (This check can be disabled with -I/--ignore-assertions.) + +Strict checks + +These are always run by this and other commands when -s/--strict is used +(strict mode): - accounts - all account names used by transactions have been declared + - commodities - all commodity symbols used have been declared -hledger check CHECK1 CHECK2 ... runs all of the named checks, in turn. -This may be useful when neither the default nor strict checks are -exactly what you want, or when you want to focus on a single check of -interest. The arguments are standard lowercase names for the checks. -Currently only these checks can be run in this way: +Other checks -- dates - transactions are ordered by date (similar to the old +These checks can be run by specifying their names as arguments to the +check command: + +- ordereddates - transactions are ordered by date (similar to the old check-dates command) -- leafnames - all account leaf names are unique ((similar to the old - check-dupes command) -See also: +- uniqueleafnames - all account leaf names are unique (similar to the + old check-dupes command) -Some checks are shipped as addon scripts for now (cf -https://github.com/simonmichael/hledger/tree/master/bin, and Cookbook -> -Scripting): +This command would run all of the checks above: -- tagfiles - all tag values containing / (a forward slash) exist as - file paths -- fancyassertions - more complex balance assertions are passing +$ hledger check -s ordereddates uniqueleafnames + +Addon checks + +Some checks are not yet integrated with this command, but are available +as [addon 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 your own similar scripts to perform custom checks; +Cookbook -> Scripting may be helpful.