hledger - a ledger-compatible accounting tool. Copyright (c) 2007-2011 Simon Michael firstname.lastname@example.org Released under GPL version 3 or later.
hledger is a partial haskell clone of John Wiegley's ledger. It generates ledger-compatible register & balance reports from a plain text journal, and demonstrates a functional implementation of ledger. For more information, see http://hledger.org .
This module provides the main function for the hledger command-line executable. It is exposed here so that it can be imported by eg benchmark scripts.
You can use the command line:
$ hledger --help
$ ghci hledger > j <- readJournalFile Nothing Nothing "data/sample.journal" > register  ["income","expenses"] j 2008/01/01 income income:salary $-1 $-1 2008/06/01 gift income:gifts $-1 $-2 2008/06/03 eat & shop expenses:food $1 $-1 expenses:supplies $1 0 > balance [Depth "1"]  l $-1 assets $2 expenses $-2 income $1 liabilities > l <- myLedger
See Hledger.Data.Ledger for more examples.
The overall cmdargs mode describing command-line options for hledger.
Parse hledger CLI options from these command line arguments and add-on command names, or raise any error.
A hacky workaround for cmdargs not accepting flags before the subcommand name: try to detect and move such flags after the command. This allows the user to put them in either position. The order of options is not preserved, but this should be ok.
Since we're not parsing flags as precisely as cmdargs here, this is imperfect. We make a decent effort to: - move all no-argument help and input flags - move all required-argument help and input flags along with their values, space-separated or not - not confuse things further or cause misleading errors.