Commit Graph

407 Commits

Author SHA1 Message Date
Simon Michael
eeb48c86d1 default report dates come from secondary dates with --date2 2014-04-24 14:44:30 -07:00
Simon Michael
32f182158e fix a warning 2014-04-22 17:50:09 -07:00
Simon Michael
e40b587357 addons: another fix for addon detection on windows 2014-04-22 17:49:03 -07:00
Simon Michael
ca499d7f7b addons: detect more executable file extensions, such as .exe
In addition to hledger-X and hledger-X.hs, other common executable file
extensions will be recognised. In particular, on windows hledger now
lists hledger-web.exe as an add-on. The current list is:
bat, com, exe, hs, lhs, pl, py, rb, rkt, sh.
2014-04-22 17:40:06 -07:00
Simon Michael
1fca3e7472 orDatesFrom -> spanDefaultsFrom 2014-04-19 08:38:03 -07:00
Simon Michael
9d10cfa180 fix single-quote-containing addon arguments harder 2014-04-15 13:07:43 -07:00
Simon Michael
2af04ec2fc balance: merge/improve multicol report implementations
Periodic, cumulative and historical multicolumn balance reports are now
generated by one code path, which helps with consistency and reducing
the bug/test surface. --tree now also works with --cumulative or
--historical.
2014-04-13 12:49:05 -07:00
Simon Michael
cad37b7dce balance: fix excessive indent in multicolumn tree mode 2014-04-13 12:49:05 -07:00
Simon Michael
19eb45cb68 account: add more description in the command-specific help 2014-04-08 15:57:40 -07:00
Simon Michael
7b4b99fae0 accounts: more query support, --flat/--drop/--depth support 2014-04-07 12:13:36 -07:00
Simon Michael
efad3a767d balance: support --drop in flat multicolumn reports 2014-04-07 08:32:23 -07:00
Simon Michael
f9c1d94b5f accounts: make accounts a built-in command, listing posted account names 2014-04-07 08:27:50 -07:00
Simon Michael
7d99ae5033 balance: --tree makes multicolumn reports show hierarchy
Multicolumn balance reports can now be switched to a hierarchical view
with --tree. This is similar to the single column balance report with
--no-elide, ie we do not elide boring parents into the following line.

The --flat and --tree flags are opposites; the last one to appear on
the command line is decisive (in future, if not already).
2014-04-06 21:56:47 -07:00
Simon Michael
6b5ed3d790 print: drop unnecessary showTransactions
refactor the tests later
2014-04-05 19:39:18 -07:00
Simon Michael
5cd3f6ed51 balancesheet, cashflow, incomestatement: less space before Total 2014-04-05 13:35:18 -07:00
Simon Michael
a8122405bf I see, polymorphic let bindings need a proper type sig 2014-04-03 18:49:57 -07:00
Simon Michael
a1531bcd09 show args processing debug output only at level 2+ 2014-04-03 18:49:56 -07:00
Simon Michael
ce888a62d5 restore some options utilities, fix hledger-balance-csv script 2014-03-28 16:33:48 -07:00
Simon Michael
b69e6c6946 unused extensions 2014-03-28 16:23:40 -07:00
Simon Michael
882a9dbf1c cli, report & raw options cleanups 2014-03-25 19:03:56 -07:00
Simon Michael
3fa4824218 some type signatures 2014-03-25 19:03:55 -07:00
Simon Michael
d815cca069 incomestatement, cashflow: support --flat and --drop as well 2014-03-21 17:41:22 -07:00
Simon Michael
5a8b5ed082 balancesheet: support --flat and --drop, like balance 2014-03-21 17:34:58 -07:00
Simon Michael
2d1e0d7cd4 move command-specific options to the respective command modules 2014-03-21 10:45:13 -07:00
Simon Michael
7d36789b74 web: fix build failures caught by the bot 2014-03-19 08:45:52 -07:00
Simon Michael
4d8d0d9aa6 balance: make BalanceReport more like MultiBalanceReport, doc cleanups 2014-03-18 18:01:24 -07:00
Simon Michael
5df28069fb restore the test command, hidden 2014-03-18 14:08:28 -07:00
Simon Michael
92dc86ebae restore reg & bal aliases, even if not advertised 2014-03-18 13:47:13 -07:00
Simon Michael
3bc3e533c8 remove unused import 2014-03-18 13:46:47 -07:00
Simon Michael
814008d648 add: also let enter end transactions if no more default postings
To end a transaction, period is required because there might be another
default posting being suggested, and enter usually means "accept the
default". But having to switch back and forth from enter to period
during data entry is a bit unergonomic, requiring too much thought.

Now, in the (common) case where you have entered a balanced transaction
and there are no more default postings to suggest, enter is also allowed
to end the transaction. Experimental; this might be too inconsistent.
2014-03-16 09:29:09 -07:00
Simon Michael
88d52a9da8 cli: don't list both source and exe of an addon 2014-03-16 09:27:07 -07:00
Simon Michael
d1b9273b19 cli: tighten up commands list, better help for known addons 2014-03-15 13:20:24 -07:00
Simon Michael
7cbbd0fbab add: fix over-zealous cleanup caught by hydra, continued 2014-03-06 17:50:46 -08:00
Simon Michael
8e6922c57c add: fix over-zealous cleanup caught by hydra 2014-03-06 17:49:52 -08:00
Simon Michael
63eca19a7f add: refactor completion functions 2014-03-06 16:58:48 -08:00
Simon Michael
856f62b465 add: fix runtime printf error from 2nd txn on (fixes #164) 2014-03-05 12:48:13 -08:00
Simon Michael
27cf33f887 debug message wording 2014-03-04 11:04:31 -08:00
Simon Michael
ebf42046d8 add: keep using historical txn accounts as defaults even after a custom amount is entered 2014-03-03 12:18:10 -08:00
Simon Michael
dd2f293094 rename FormatString to OutputFormat
It was going to be Format, but that clashes with file format. Press on.
2014-03-02 13:33:56 -08:00
Simon Michael
d89367d75e add: make input prompts green, where supported
Because we can! Should have no effect where not supported.
2014-03-01 11:16:19 -08:00
Simon Michael
5d0da63261 add: don't print an extra newline on exit
even it made things tidier in an emacs shell..
2014-03-01 11:15:29 -08:00
Simon Michael
1051f10826 add: also accept . at date prompt to quit 2014-03-01 11:15:19 -08:00
Simon Michael
e50c2a4259 add: avoid quotes preserved in quoted cli args 2014-03-01 11:08:31 -08:00
Simon Michael
dcdb032d96 add: rewrite using wizards and make it more robust
The code is now much more manageable, faciliating further
improvements. Completion now works at all prompts, and
will insert the default value if the input area is empty.
Account and amount defaults are more robust and useful
in various situations. There might be a slight regression
with default commodity handling.
2014-02-27 18:15:49 -08:00
Simon Michael
204af487a5 note an issue with CliOpts query_ 2014-02-27 17:39:38 -08:00
Simon Michael
bab6ec041b cli: be more robust at finding hledger-* add-ons
Previously executables with eg digits in their name were ignored.
It now finds all files beginning with hledger-, optionally ending with
.hs or .lhs, and with no other dots in the name.
As before, we don't check for executable permission (performance ?).
2014-02-27 11:40:41 -08:00
Simon Michael
8d3161f6d6 add: cleanup, cleanup 2014-02-23 15:04:28 -08:00
Simon Michael
6bf08cdd7c add: hack apart getPostingsLoop into smaller pieces 2014-02-23 07:52:26 -08:00
Simon Michael
56abdb2c8c add: code cleanups 2014-02-21 09:07:52 -08:00
Simon Michael
e35614c88d add: clarify "accept" 2014-02-21 07:23:10 -08:00
Simon Michael
f34d3aa9d6 add: clarify runInteraction* 2014-02-20 11:15:05 -08:00
Simon Michael
41a58609fb add: output a final newline after control-d 2014-02-12 08:22:44 -08:00
Simon Michael
d158d401d9 fix some breakages found by Hydra 2014-02-05 19:30:01 -08:00
Simon Michael
ac95930b15 Hledger.Cli now re-exports Hledger and System.Console.CmdArgs.Explicit 2014-02-05 18:55:03 -08:00
Simon Michael
044ba78693 help fix, -V is not equivalent to --version (#145) 2013-12-07 15:35:58 -08:00
Simon Michael
5bdc55ab77 note that getCliOpts, debugArgs api fns are unused 2013-12-07 06:10:45 -08:00
Simon Michael
8261ac0f56 three fixes to handle --debug=N like --debug 2013-12-07 06:09:39 -08:00
Simon Michael
8bbd22d7ed fix handling of --debug before command 2013-12-07 05:51:17 -08:00
Simon Michael
c53732a4af balance: new multi-column reports & documentation
Two new multi-column balance report modes show ending balance per
period: `--cumulative`, starting from 0, and `--historical`, starting
from the historical starting balance.

The balance command's specification has been clarified and consolidated
in the Balance.hs haddock. Reports.hs has also had haddock updates. The
old AccountsReport type is now BalanceReport, still used by
single-column balance report. The new MultiBalanceReport type is used by
the multi-column reports.
2013-12-07 05:43:31 -08:00
Simon Michael
c99f37241c allow an optional level argument with --debug 2013-12-06 13:30:36 -08:00
Simon Michael
6e7610c1b7 drop some experimental pprint logging 2013-12-06 13:26:08 -08:00
Simon Michael
7e06a6a24c balance: basic multi-column balance (change) reports 2013-09-26 15:06:48 -07:00
Simon Michael
eb5e2f95e9 cashflow: don't ignore the report start date (fixed #135)
Odd, there may have been s reason to do this but I can't remember it.
2013-09-23 11:08:55 -07:00
Simon Michael
a66a715eeb command line options API updates, possibly fixing hledger-web build 2013-09-22 22:31:06 -07:00
Simon Michael
13f8c0f938 overhaul command line processing
Command line processing has been overhauled and made more consistent,
and now has tests and extensive debug output.  More flags now work
both before and after COMMAND: -f, --rule-file, --alias, --help,
--debug, --version.  Command line help, command aliases, API docs and
code have been improved.
2013-09-22 01:17:41 -07:00
Simon Michael
7ed0705398 register: --average/-A shows a running average, like ledger 2013-09-09 18:25:53 -07:00
Simon Michael
e4c76acb12 balancesheet: don't bother showing equity, it won't be useful for most of us 2013-07-23 16:47:54 -07:00
Simon Michael
39f6ec9f04 tools: fix make ghci, ghciweb
In general, when cabal CPP macros like min_PKG are used, they should
be made optional. If they are not present, assume a developer is
building and choose the latest libs.
2013-06-06 15:26:40 -07:00
Simon Michael
2bb120d6c6 register: fix -w related test breakage, another width tweak (#102)
As part of adding -w in december I cleaned up/adjusted register field
widths, and didn't make all the tests pass. This commit makes one more
width adjustment
(one space after the date instead of two) and fixes all tests depending on register output.
2013-04-12 14:56:41 -07:00
Simon Michael
af5c0e80e0 parsing: read files in universal newline mode
Line endings other than the unix style, are now accepted in journal and rules files.
2013-03-29 18:46:10 +00:00
Simon Michael
1adc583975 make hledger-web installable with GHC < 7.6 again
Revisiting the "directory 1.2 can be installed with older GHC, so we'd better pin it in the cabal file" change.
Requiring directory 1.2 made hledger-web uninstallable with GHC < 7.6 because current yesod depends on ghc
which depends on a particular directory version and can't be upgraded. This is a smarter fix, which should let
all hledger packages build with whatever directory version is installed.
2013-03-19 01:22:09 +00:00
Simon Michael
bbfd91e7ea directory 1.2 can be installed with older GHC, so we'd better pin it in the cabal file
hledger now requires directory >= 1.2. This might make installation
more complex on old GHC versions; if it turns out to be needed,
perhaps it can be conditionalised again, more accurately, in the cabal file.
2013-03-11 15:56:56 +00:00
Simon Michael
47a4c52904 add: tweak output 2013-03-05 20:18:10 +00:00
Simon Michael
edcfd2abb1 add: handle partial dates on the command line, instead of failing after all data entry 2013-03-05 02:08:53 +00:00
Simon Michael
5785eae38e add: show the transaction and confirm before adding it, or allow restart 2013-02-25 20:52:43 +00:00
Simon Michael
314da705f8 add: fix compilation with GHC 7.4 and perhaps older 2013-02-25 19:49:03 +00:00
Simon Michael
2eba34514f add: mention code/comment entry in help 2013-02-24 21:30:56 +00:00
Simon Michael
10d83a9252 add: allow transaction code and transaction/posting comments/tags to be entered (#45)
- A transaction code may be entered following the date in parentheses, eg: DATE (CODE)
- A transaction comment (possibly containing tags) may be entered following the description, eg: DESC ; COMMENT
- A posting comment may be entered following the amount, eg: AMOUNT ; COMMENT
2013-02-24 21:16:03 +00:00
Simon Michael
7025c6f66a add: more code cleanup 2013-02-24 20:05:31 +00:00
Simon Michael
8aba692926 add: cleanups 2013-02-24 18:35:42 +00:00
Simon Michael
4f1ce14033 add: use command line arguments as defaults for first txn (part 2)
It seems I missed some.
2013-02-24 18:09:04 +00:00
Simon Michael
bf91efda7c add: use command line arguments as defaults for first txn
With one or more command line arguments, they will used as defaults
for the first transaction, and history will be ignored. Subsequent
transactions will use history for defaults (and now only the best match
from history is shown).
2013-02-24 02:07:58 +00:00
Simon Michael
c8e2751aa5 add: < at any prompt restarts the current transaction (#47) 2013-02-23 01:44:45 +00:00
Simon Michael
7fcd45614b add: ui cleanups
- tidier output
- show more help
- suggest . only for recording, not for quitting (though it still works)
- show each transaction after adding it (#52)
- don't parse . as a zero amount
- don't show [] when there's no default
2013-02-23 00:57:16 +00:00
Simon Michael
2a6a028222 register: date display refinements
- when showing multiple postings from a transaction, show their individual dates accurately
- with --date2, use that date for sorting
2013-02-14 21:12:35 +00:00
Simon Michael
7175c57992 reg: --related/-r flag to show other postings in the transaction 2012-12-22 00:24:38 +00:00
Simon Michael
552a15a1ba reg: --width/-w option to adjust register overall output width 2012-12-21 21:56:11 +00:00
Simon Michael
621a91807e rename actual/effective dates to primary/secondary
The command-line flag is now --date2. Alternate spellings --effective and --aux-date
are accepted for compatibility.
2012-12-06 04:43:41 +00:00
Simon Michael
20e68f23a8 support effective dates on postings as well
We now preserve all dates while reporting, instead of overwriting one with the other.
2012-12-06 02:41:37 +00:00
Simon Michael
e75abc4625 parse posting dates, better comment/tag handling, begin using HTF for unit testing 2012-12-06 00:28:23 +00:00
Simon Michael
b2b429c9e4 refactor: dead code 2012-12-06 00:04:09 +00:00
Simon Michael
4aafeb32e6 refactor: clean up Posting construction 2012-12-06 00:03:07 +00:00
Simon Michael
157c85a915 move stripbrackets to Utils 2012-12-04 00:03:42 +00:00
Simon Michael
26a37bf3df web: quick fix for "Prelude.read: no parse" errors with GHC >= 7.6 2012-11-24 15:13:14 +00:00
Simon Michael
64180b18ef refactor: clarify that price amounts have only a single commodity 2012-11-19 23:17:55 +00:00
Simon Michael
4567e91409 refactor: move amount display settings out of commodity, simplify amount construction 2012-11-19 21:20:10 +00:00
Simon Michael
5b9c5459be web: make hledger[-lib] compatible with all of yesod's language extensions
Useful when building all of hledger-web at once.
2012-11-14 17:25:02 +00:00
Simon Michael
ef73894889 redo bad fix to balancesheet, cashflow, incomestatement commands
I had this crazy idea shakepeare-text interpolation syntax had changed
when these failed in hledger-web dev builds. It was CPP of course.
2012-11-17 03:22:58 +00:00
Simon Michael
cfbd8bb956 web: update for yesod 1.1.3
Build with latest yesod. Also reorganise to conform more closely with
yesod's standard scaffold layout to reduce upgrade effort.
2012-11-15 17:48:48 +00:00
Simon Michael
c1ab41f0a9 hledger, hledger-lib: support GHC 7.6 2012-10-08 16:52:07 +00:00
Simon Michael
00f22819ae balance report speedup
This refactoring fixes an O(n^2) slowdown in the balance command with
large numbers of accounts. It's now speedy, and the implementation is
clearer. To facilitate this, the Account type now represents a tree of
accounts which can easily be traversed up or down (and/or flattened
into a list).

Benchmark on a 2010 macbook:

    +-------------------------------------------++--------------+------------+--------+
    |                                           || before:      | after:     |        |
    |                                           || hledger-0.18 | hledgeropt | ledger |
    +===========================================++==============+============+========+
    | -f data/100x100x10.journal     balance    ||         0.21 |       0.07 |   0.09 |
    | -f data/1000x1000x10.journal   balance    ||        10.13 |       0.47 |   0.62 |
    | -f data/1000x10000x10.journal  balance    ||        40.67 |       0.67 |   1.01 |
    | -f data/10000x1000x10.journal  balance    ||        15.01 |       3.22 |   2.36 |
    | -f data/10000x1000x10.journal  balance aa ||         4.77 |       4.40 |   2.33 |
    +-------------------------------------------++--------------+------------+--------+
2012-10-21 17:18:18 +00:00
Simon Michael
f03b020e2f set version with CPP instead of cabal-file-th; make building more robust
hledger and hledger-web were reading their version number (and program
name) from their cabal files at compile time using cabal-file-th,
which allowed the version number be maintained in one place (per
package).

This meant you had to be in same directory as the cabal file when
building, which made life more complicated, eg emacs compilation mode
could not jump to errors. Also, it slowed down building slightly, and
is a factor in hledger Debian packages being unavailable on a number
of platforms (we also use TH for report templates).

Now, the build version is set with a CPP VERSION flag, which seems
simpler overall. For cabal builds, this needs to be configured
manually in a few more places in each cabal file. For makefile builds,
it is set it to the name of the most recent darcs tag (which should be
more useful than the old behaviour). If not set, it defaults to the
blank string, useful eg for haddock. And, all makefile builds now run
from the top directory.
2012-10-13 19:21:17 +00:00
Simon Michael
7fec954cbf support latest cmdargs, haskeline, split 2012-10-08 16:50:35 +00:00
Simon Michael
0b96a767b4 support tilde (~) in journal and rules file paths 2012-05-30 08:36:01 +00:00
Simon Michael
34318906d8 register, print: fix reverse ordering of same-day transactions 2012-06-29 18:06:58 +00:00
Simon Michael
6ccecb6ae0 stats: list included journal files 2012-05-30 09:17:18 +00:00
Simon Michael
ed1ea545f5 make --rules-file work again 2012-03-24 19:53:07 +00:00
Simon Michael
50068221c3 fix build warnings in all GHC versions 2012-03-29 21:19:35 +00:00
Simon Michael
31f3e4dc27 balance: accept "bal" without complaining about ambiguity with balancesheet 2012-04-14 20:33:15 +00:00
Simon Michael
3441c2d816 unneeded imports 2012-04-21 00:23:52 +00:00
Simon Michael
d30cd5847a a simplistic cashflow statement to complete the trio 2012-04-17 17:32:56 +00:00
Simon Michael
483eb09a82 show proper help for balancesheet/incomestatement 2012-04-14 20:33:48 +00:00
Simon Michael
b584f33cbb Cli, Cli.Test module doc updates 2012-05-09 15:29:14 +00:00
Simon Michael
b6e5028071 fix compiler warning 2012-05-16 06:40:52 +00:00
Simon Michael
294a350993 promote Hledger.Query to second level 2012-05-16 07:57:10 +00:00
Simon Michael
98274b481d more build warnings 2012-05-06 20:44:23 +00:00
Simon Michael
7f3b990394 docs: fix api docs 2012-03-07 16:05:04 +00:00
Simon Michael
2fb2aea056 rename metadata fields to tags 2012-05-27 22:59:06 +00:00
Simon Michael
3ee6a351f3 big query/tests/show refactoring
- use new query system for command line too, filterspec is no more
- move unit tests near the code they test, run them in bottom up order, add more
- more precise Show instances, used for debugging not ui
2012-05-27 18:14:20 +00:00
Simon Michael
1654776f4a refactor test runner 2012-05-14 19:23:12 +00:00
Simon Michael
db4d853a3f refactor: move readJournal' 2012-04-14 01:10:39 +00:00
Simon Michael
197f35cb5b unit test exposing sample journal parse failure 2012-05-09 15:30:43 +00:00
Simon Michael
a628964016 prepare to support full query expressions on command line 2012-05-16 08:31:06 +00:00
Simon Michael
88afea8c44 balancesheet: ignore start dates, always show the accurate balance from all transactions up to the specified end date 2012-04-17 02:28:30 +00:00
Simon Michael
65a20c6870 separate account types in balancesheet, show totals with consistent layout 2012-04-16 16:55:30 +00:00
Simon Michael
1e2c2bb10c hook up more tests, begin converting remaining reports to Query 2012-05-17 04:21:34 +00:00
Simon Michael
a58a5f96ad more robust comments & metadata, on postings too, and document as "tags" 2012-05-14 18:52:22 +00:00
Simon Michael
88212f26e8 simplify journal parser names 2012-05-09 15:34:05 +00:00
Simon Michael
e1b1b8bce8 rename Matcher to Query, simplify constructors 2012-05-16 07:12:49 +00:00
Simon Michael
8c7eea9ee0 make incomestatement respect options 2012-04-16 16:45:24 +00:00
Simon Michael
b4b2b67236 incomestatement: show revenue and expense accounts separately 2012-04-15 00:05:10 +00:00
Simon Michael
abb470aadb use shakespeare-text to help lay out incomestatement's output 2012-04-14 20:35:51 +00:00
Simon Michael
a27eb7c29f more matcher -> query renaming 2012-05-16 07:37:24 +00:00
Simon Michael
8492f6cae4 fix unicode handling on GHC >= 7.2, unify utf8 IO compatibility layer
tests pass again from GHC 6.12.3 to 7.4.1
2012-03-29 19:06:31 +00:00
Simon Michael
ca5d5020e1 prototypical incomestatement and balancesheet commands 2012-04-14 01:34:56 +00:00
Simon Michael
b96e3ac85d drop convert command 2012-03-24 19:40:06 +00:00
Simon Michael
00a43cd1bf Hledger.Cli.Format -> Hledger.Data.FormatStrings 2012-03-10 19:20:15 +00:00
Simon Michael
a1297daae2 cashflow: forgot th' module 2012-04-17 18:27:28 +00:00
Simon Michael
e396c0dc8d push csv rule and format string types down 2012-03-24 01:58:34 +00:00
Simon Michael
6eb7ad28e1 refactor/beef up readJournal/readJournalFile 2012-03-23 16:21:41 +00:00
Simon Michael
13e0757670 less obscure error when the journal file path contains a tilde 2012-01-03 12:12:37 +00:00
Simon Michael
26ad00a659 support and require latest cmdargs 2012-01-05 18:25:15 +00:00
Simon Michael
1bc4d4b395 refactor: clarify mixed amount normalising a bit 2012-01-01 00:39:13 +00:00
Dmitry Astapov
7426e93ec6 Testcase+fix for commodity being reported more than once per account in balance 2011-12-25 21:21:27 +00:00
Simon Michael
0d8a7c935b fix import warning 2012-02-02 05:27:07 +00:00
Simon Michael
c686645fab refactor: update version number handling 2012-01-31 06:01:31 +00:00
Simon Michael
db7f4d1b3d use cabal-file-th to get executable name and version from cabal files 2011-10-19 19:53:42 +00:00
Simon Michael
4fb325b92a bump version 2011-10-04 23:53:50 +00:00
Simon Michael
9a6328adeb comment 2011-09-14 19:46:31 +00:00
Simon Michael
33f6277e0d cli: hledger ADDONCOMMAND --version now shows add-on command's version 2011-09-14 02:32:44 +00:00