mirror of
https://github.com/simonmichael/hledger.git
synced 2024-09-19 10:17:35 +03:00
options, docs, and notes cleanup
This commit is contained in:
parent
ef54f1729c
commit
d853892c42
6
NOTES
6
NOTES
@ -10,7 +10,6 @@ clever tricks like the plague." --Edsger Dijkstra
|
||||
|
||||
* to do
|
||||
** errors
|
||||
*** register report should sort by date
|
||||
** features
|
||||
*** more ledger features
|
||||
**** rename entry -> transaction, transaction -> posting
|
||||
@ -44,7 +43,7 @@ clever tricks like the plague." --Edsger Dijkstra
|
||||
**** speed regression tests
|
||||
** tests
|
||||
*** test all esoteric ledger file features
|
||||
*** wanted: a test for reading a ledger from stdin
|
||||
*** test reading from stdin
|
||||
*** easy ledger compatibility testing
|
||||
**** --compare to compare (xml?) output with ledger with same args
|
||||
** docs
|
||||
@ -253,6 +252,7 @@ competitors/fellow niche inhabitants
|
||||
*** readme
|
||||
**** keep in sync (automate)
|
||||
***** README file
|
||||
****** options list in Features should match Options.hs, generate from hledger --help ?
|
||||
***** hledger.hs module description
|
||||
***** hledger.cabal description field (exclude home page link)
|
||||
***** home page description (http://joyful.com/Hledger/editform)
|
||||
@ -273,7 +273,7 @@ competitors/fellow niche inhabitants
|
||||
****** we test continuously and thoroughly (code, doc & speed tests on each checkin)
|
||||
****** less is more
|
||||
*** user manual
|
||||
*** differences not noted in README
|
||||
*** other differences not noted in README
|
||||
**** ledger shows description comments as part of description
|
||||
**** ledger seems to get amounts' x-position wrong more than hledger
|
||||
**** ledger can't parse full smart dates in display expressions
|
||||
|
41
Options.hs
41
Options.hs
@ -24,35 +24,34 @@ usagehdr = printf (
|
||||
" %s [OPTIONS] COMMAND [PATTERNS]\n" ++
|
||||
" %s [OPTIONS] [PERIOD [COMMAND [PATTERNS]]]\n" ++
|
||||
"\n" ++
|
||||
"Commands (can be abbreviated):\n" ++
|
||||
"COMMAND is one of (may be abbreviated):\n" ++
|
||||
" balance - show account balances\n" ++
|
||||
" print - show formatted ledger entries\n" ++
|
||||
" register - show register transactions\n" ++
|
||||
#ifdef VTY
|
||||
" ui - run a simple vty-based text ui\n" ++
|
||||
" ui - run a simple curses-based text ui\n" ++
|
||||
#endif
|
||||
#ifdef ANSI
|
||||
" ansi - run a simple ansi-based text ui\n" ++
|
||||
#endif
|
||||
#ifdef HAPPS
|
||||
" web - run a simple web interface on port 5000\n" ++
|
||||
" web - run a simple web ui\n" ++
|
||||
#endif
|
||||
" test - run self-tests\n" ++
|
||||
"\n" ++
|
||||
"PATTERNS are regular expressions which filter by account name.\n" ++
|
||||
"Or, prefix with desc: to filter by entry description.\n" ++
|
||||
"Or, prefix with not: to negate a pattern. (When using both, not: comes last.)\n" ++
|
||||
"\n" ++
|
||||
"Dates can be y/m/d or ledger-style smart dates like \"last month\".\n" ++
|
||||
"\n" ++
|
||||
"Options:"
|
||||
) progname timeprogname
|
||||
|
||||
|
||||
usageftr = printf (
|
||||
"\n" ++
|
||||
"All dates can be y/m/d or ledger-style smart dates like \"last month\".\n" ++
|
||||
"\n" ++
|
||||
"Also: %s [-v] test [TESTPATTERNS] to run self-tests.\n" ++
|
||||
"\n"
|
||||
) progname
|
||||
)
|
||||
|
||||
usage = usageInfo usagehdr options ++ usageftr
|
||||
|
||||
@ -65,26 +64,27 @@ options = [
|
||||
,Option ['p'] ["period"] (ReqArg Period "EXPR") ("report on entries during the specified period\n" ++
|
||||
"and/or with the specified reporting interval\n")
|
||||
,Option ['C'] ["cleared"] (NoArg Cleared) "report only on cleared entries"
|
||||
,Option ['B'] ["cost","basis"] (NoArg CostBasis) "report cost basis of commodities"
|
||||
,Option [] ["depth"] (ReqArg Depth "N") "balance report: maximum account depth to show"
|
||||
,Option ['d'] ["display"] (ReqArg Display "EXPR") ("display only transactions matching simple EXPR\n" ++
|
||||
,Option ['B'] ["cost","basis"] (NoArg CostBasis) "report cost of commodities"
|
||||
,Option [] ["depth"] (ReqArg Depth "N") "hide accounts/transactions deeper than this"
|
||||
,Option ['d'] ["display"] (ReqArg Display "EXPR") ("show only transactions matching simple EXPR\n" ++
|
||||
"(where EXPR is 'dOP[DATE]', OP is <, <=, =, >=, >)")
|
||||
,Option ['E'] ["empty"] (NoArg Empty) "balance report: show accounts with zero balance"
|
||||
,Option ['E'] ["empty"] (NoArg Empty) "show empty/zero things which are normally elided"
|
||||
,Option ['R'] ["real"] (NoArg Real) "report only on real (non-virtual) transactions"
|
||||
,Option ['n'] ["collapse"] (NoArg Collapse) "balance report: no grand total"
|
||||
,Option ['s'] ["subtotal"] (NoArg SubTotal) "balance report: show subaccounts"
|
||||
-- ,Option ['s'] ["subtotal"] (NoArg SubTotal) "balance report: show subaccounts"
|
||||
,Option ['W'] ["weekly"] (NoArg WeeklyOpt) "register report: show weekly summary"
|
||||
,Option ['M'] ["monthly"] (NoArg MonthlyOpt) "register report: show monthly summary"
|
||||
,Option ['Y'] ["yearly"] (NoArg YearlyOpt) "register report: show yearly summary"
|
||||
,Option ['h'] ["help"] (NoArg Help) "show this help"
|
||||
,Option ['v'] ["verbose"] (NoArg Verbose) "verbose test output"
|
||||
,Option ['V'] ["version"] (NoArg Version) "show version"
|
||||
,Option [] ["debug"] (NoArg Debug) "debug output"
|
||||
,Option [] ["debug-no-ui"] (NoArg DebugNoUI) "run ui commands without no output"
|
||||
,Option ['V'] ["version"] (NoArg Version) "show version information"
|
||||
,Option ['v'] ["verbose"] (NoArg Verbose) "show verbose test output"
|
||||
,Option [] ["debug"] (NoArg Debug) "show some debug output"
|
||||
,Option [] ["debug-no-ui"] (NoArg DebugNoUI) "run ui commands with no output"
|
||||
]
|
||||
where
|
||||
filehelp = printf "ledger file; - means use standard input. Defaults\nto the %s environment variable or %s"
|
||||
ledgerenvvar ledgerpath
|
||||
filehelp = printf (intercalate "\n"
|
||||
["ledger file; default is the %s env. variable's"
|
||||
,"value, or %s. - means use standard input."
|
||||
]) ledgerenvvar ledgerpath
|
||||
|
||||
-- | An option value from a command-line flag.
|
||||
data Opt =
|
||||
@ -98,7 +98,6 @@ data Opt =
|
||||
Display {value::String} |
|
||||
Empty |
|
||||
Real |
|
||||
Collapse |
|
||||
SubTotal |
|
||||
WeeklyOpt |
|
||||
MonthlyOpt |
|
||||
|
106
README
106
README
@ -4,13 +4,10 @@ hledger - a ledger-compatible text-based accounting tool
|
||||
Welcome to hledger!
|
||||
|
||||
hledger is a partial haskell clone of John Wiegley's text-based accounting
|
||||
tool, ledger (http://wiki.github.com/jwiegley/ledger).
|
||||
|
||||
hledger 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 .
|
||||
tool, ledger (http://wiki.github.com/jwiegley/ledger). hledger 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 .
|
||||
|
||||
Copyright (c) 2007-2009 Simon Michael <simon@joyful.com>
|
||||
Released under GPL version 3 or later.
|
||||
@ -39,7 +36,7 @@ dependencies)::
|
||||
|
||||
The available flags are::
|
||||
|
||||
happs - enable the built-in webserver
|
||||
happs - enable the webserver ui
|
||||
vty - enable the curses text ui
|
||||
ansi - enable the ansi text ui (use instead of vty on MS windows)
|
||||
|
||||
@ -88,58 +85,61 @@ Examples::
|
||||
Features
|
||||
--------
|
||||
|
||||
This version of hledger mimics a subset of ledger 2.6.1, and adds some
|
||||
features of its own. We currently support: the balance, print, and
|
||||
register commands, regular ledger entries, multiple commodities, virtual
|
||||
transactions, account and description patterns, the LEDGER environment
|
||||
variable, and these options::
|
||||
|
||||
Basic options:
|
||||
-h, --help display summarized help text
|
||||
-v, --version show version information
|
||||
-f, --file FILE read ledger data from FILE
|
||||
|
||||
Report filtering:
|
||||
-b, --begin DATE set report begin date
|
||||
-e, --end DATE set report end date
|
||||
-p, --period EXPR report using the given period
|
||||
-C, --cleared consider only cleared transactions
|
||||
-R, --real consider only real (non-virtual) transactions
|
||||
|
||||
Output customization:
|
||||
-n, --collapse balance report: no grand total
|
||||
-d, --display EXPR display only transactions matching EXPR (limited support)
|
||||
-E, --empty balance report: show accounts with zero balance
|
||||
-s, --subtotal balance report: show sub-accounts
|
||||
|
||||
Commodity reporting:
|
||||
-B, --basis, --cost report cost basis of commodities
|
||||
This version of hledger mimics a subset of ledger 3.x, and adds some
|
||||
features of its own. We currently support regular ledger entries, timelog
|
||||
entries, multiple commodities, virtual transactions, account and
|
||||
description patterns, the LEDGER environment variable, and these commands
|
||||
and options::
|
||||
|
||||
Commands:
|
||||
balance [REGEXP]... show balance totals for matching accounts
|
||||
register [REGEXP]... show register of matching transactions
|
||||
print [REGEXP]... print all matching entries
|
||||
|
||||
We handle (almost) the full period expression syntax, and simple display
|
||||
expressions consisting of a date predicate. Also the following
|
||||
hledger-specific features are supported::
|
||||
Basic options:
|
||||
-h, --help show summarized help
|
||||
-f, --file FILE read ledger data from FILE
|
||||
|
||||
Report filtering:
|
||||
-b, --begin DATE report on entries on or after this date
|
||||
-e, --end DATE report on entries prior to this date
|
||||
-p, --period EXPR report on entries during the specified period
|
||||
and/or with the specified reporting interval
|
||||
-C, --cleared report only on cleared entries
|
||||
-R, --real report only on real (non-virtual) transactions
|
||||
|
||||
Output customization:
|
||||
-B, --basis, --cost report cost of commodities
|
||||
-d, --display EXPR display only transactions matching EXPR (limited support)
|
||||
-E, --empty show empty/zero things which are normally elided
|
||||
--no-total balance report: hide the final total
|
||||
-W, --weekly register report: show weekly summary
|
||||
-M, --monthly register report: show monthly summary
|
||||
-Y, --yearly register report: show yearly summary
|
||||
|
||||
ui a simple curses-based text ui (unix platforms only)
|
||||
ansi an even more rudimentary ansi-based text ui
|
||||
web a simple web interface on port 5000
|
||||
--depth=N balance report: maximum account depth to show
|
||||
Misc:
|
||||
-V, --version show version information
|
||||
-v, --verbose show verbose test output
|
||||
--debug show some debug output
|
||||
--debug-no-ui run ui commands with no output
|
||||
|
||||
We handle (almost) the full period expression syntax, and very limited
|
||||
display expressions consisting of a simple date predicate. Also the
|
||||
following new commands are supported::
|
||||
|
||||
ui a simple curses-based text ui (on windows, ansi-based)
|
||||
web a simple web-based ui
|
||||
test run self-tests
|
||||
|
||||
ledger features not supported
|
||||
.............................
|
||||
|
||||
ledger features not yet supported include: modifier and periodic entries,
|
||||
parsing gnucash files, and the following options::
|
||||
ledger features not currently supported include: modifier and periodic
|
||||
entries, and options such as these::
|
||||
|
||||
Basic options:
|
||||
-o, --output FILE write output to FILE
|
||||
-i, --init-file FILE initialize ledger using FILE (default: ~/.ledgerrc)
|
||||
--cache FILE use FILE as a binary cache when --file is not used
|
||||
--no-cache don't use a cache, even if it would be appropriate
|
||||
-a, --account NAME use NAME for the default account (useful with QIF)
|
||||
|
||||
Report filtering:
|
||||
@ -157,13 +157,10 @@ parsing gnucash files, and the following options::
|
||||
-T, --total EXPR use EXPR to calculate the displayed total
|
||||
|
||||
Output customization:
|
||||
-n, --collapse register: collapse entries
|
||||
-n, --collapse Only show totals in the top-most accounts.
|
||||
-s, --subtotal other: show subtotals
|
||||
-P, --by-payee show summarized totals by payee
|
||||
-x, --comm-as-payee set commodity name as the payee, for reporting
|
||||
-W, --weekly show weekly sub-totals
|
||||
-M, --monthly show monthly sub-totals
|
||||
-Y, --yearly show yearly sub-totals
|
||||
--dow show a days-of-the-week report
|
||||
-S, --sort EXPR sort report according to the value expression EXPR
|
||||
-w, --wide for the default register report, use 132 columns
|
||||
@ -200,13 +197,14 @@ parsing gnucash files, and the following options::
|
||||
Other differences
|
||||
.................
|
||||
|
||||
* hledger accepts options anywhere on the command line. Instead of - and --
|
||||
for pattern negation and separation, use ^ and ^^.
|
||||
* hledger always keeps differently-priced amounts of the same commodity separate
|
||||
* hledger calls ledger's "note" field "description"
|
||||
* hledger calls the "note" field "description"
|
||||
* hledger recognises description and negative patterns by "desc:" and "not:" prefixes,
|
||||
unlike ledger 3's free-form parser
|
||||
* hledger keeps differently-priced amounts of the same commodity separate
|
||||
* hledger doesn't require a space before command-line option values, eg: -f-
|
||||
* hledger provides "--cost" as a synonym for "--basis"
|
||||
* hledger's weekly reporting intervals always start on mondays
|
||||
* hledger shows start and end dates of the intervals requested, not just the span containing data
|
||||
* hledger period expressions don't support "biweekly", "bimonthly", or "every N days/weeks/..."
|
||||
* hledger always shows timelog balances in hours
|
||||
* hledger splits multi-day timelog sessions at midnight
|
||||
* hledger register report always sorts transactions by date
|
||||
|
@ -20,15 +20,15 @@ Extra-Tmp-Files:
|
||||
Cabal-Version: >= 1.2
|
||||
|
||||
Flag happs
|
||||
description: Build web-based ui (requires happstack)
|
||||
description: enable the webserver ui
|
||||
default: False
|
||||
|
||||
Flag vty
|
||||
description: Build vty-based text ui (requires vty)
|
||||
description: enable the curses test ui
|
||||
default: False
|
||||
|
||||
Flag ansi
|
||||
description: Build ansi-based text ui (requires ansi-terminal, use instead of vty on windows)
|
||||
description: enable the ansi text ui (use instead of vty on MS windows)
|
||||
default: False
|
||||
|
||||
Library
|
||||
|
Loading…
Reference in New Issue
Block a user