mirror of
https://github.com/simonmichael/hledger.git
synced 2024-09-19 18:29:36 +03:00
bin: check-fancyassertions: add docs to --help output
This commit is contained in:
parent
c301a08195
commit
5a0d61998a
@ -123,6 +123,46 @@ import System.FilePath (FilePath)
|
||||
import qualified Text.Megaparsec as P
|
||||
import qualified Text.Megaparsec.Char as P
|
||||
|
||||
-- Don't know how to preserve newlines yet.
|
||||
helptxt = unlines [
|
||||
"ASSERTIONS can be:"
|
||||
,""
|
||||
,"1. <VALUE_OR_ACCT> CMP <VALUE_OR_ACCT> -"
|
||||
,""
|
||||
,"In the simplest form, an assertion is just a comparison between"
|
||||
,"values. A value is either an amount or an account name (both as"
|
||||
,"defined by hledger). The comparison operators are <, <=, ==,"
|
||||
,">=, >, and != (with the obvious meanings)."
|
||||
,""
|
||||
,"Normally, the name of an account refers to the balance of that account"
|
||||
,"only, without including subaccounts. The syntax `* ACCT` refers"
|
||||
,"to the sum of the values in both that account and its subaccounts."
|
||||
,""
|
||||
,"Example:"
|
||||
,""
|
||||
,"hledger-check-fancyassertions -D 'budget:books >= £0'"
|
||||
,""
|
||||
,""
|
||||
,"\"At the end of every day, the books budget is greater than or equal to"
|
||||
,"£0\", implying that if I overspend, I need to take the money out of"
|
||||
,"some other account. Note the double space after budget:books, this is"
|
||||
,"because account names can contain single spaces."
|
||||
,""
|
||||
,"2. <ASSERTION> OP <ASSERTION> -"
|
||||
,""
|
||||
,"Assertions can be combined with logical connectives. The connectives"
|
||||
,"are &&, ||, ==>, and <==> (with the obvious meanings)."
|
||||
,"Assertions can also be wrapped inside parentheses."
|
||||
,""
|
||||
,"Example:"
|
||||
,""
|
||||
,"hledger-check-fancyassertions '(assets:overdraft < £2000) ==> (*assets:checking == £0)'"
|
||||
,""
|
||||
,""
|
||||
,"\"If I have taken money from my overdraft, then I must have no money in"
|
||||
,"my checking account (including subaccounts).\""
|
||||
]
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
opts <- execParser args
|
||||
@ -367,6 +407,7 @@ args :: ParserInfo Opts
|
||||
args = info (helper <*> parser) $ mconcat
|
||||
[ fullDesc
|
||||
, progDesc "Complex account balance assertions for hledger journals."
|
||||
, footer helptxt
|
||||
]
|
||||
where
|
||||
parser = Opts <$> (optional . strOption)
|
||||
|
Loading…
Reference in New Issue
Block a user