<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>When I split up the hledger package, I always intended to make the hledger program act as a single front end for hledger-* executables. I finally got around to trying that, just pushed to darcs [1]. So hledger now searches your PATH at startup and offer any hledger-* executables as subcommands.&nbsp;To make this fully modular, so that options can be reused and third-party add-ons don't need to be baked in to hledger in any way, there has also been a rather extensive options overhaul, using cmdargs.&nbsp;Below&nbsp;is an example&nbsp;[2]&nbsp;of the new help output with all hledger-* packages plus a local hledger-report.hs script installed.</div><div><br></div><div><div>I'm not sure if this is fully safe, cross-platform, robust, quick enough to be unnoticeable, etc. I have about 20 dirs and 4k files in my PATH. I haven't noticed a slowdown on macbook or vps, but have not measured. More testing of this on diverse platforms and machines, or code review, would be very welcome.</div><div><br></div><div>-Simon</div><div><br></div><div>[1]&nbsp;<a href="http://joyful.com/darcsden/simon/hledger/browse/hledger/Hledger/Cli/Options.hs#L-330">http://joyful.com/darcsden/simon/hledger/browse/hledger/Hledger/Cli/Options.hs#L-330</a></div></div><div><br></div><div>[2]</div><div>$ hledger</div><div>hledger [COMMAND] ... [OPTIONS]</div><div>&nbsp; run the specified hledger command. hledger COMMAND --help for more detail.</div><div>&nbsp; In general, COMMAND should precede OPTIONS.</div><div><br></div><div>Misc commands:</div><div>&nbsp; add &nbsp; &nbsp; &nbsp; prompt for new transactions and append them to the journal</div><div>&nbsp; convert &nbsp; show the specified CSV file as hledger journal entries</div><div>&nbsp; test &nbsp; &nbsp; &nbsp;run self-tests, or just the ones matching REGEXPS</div><div><br></div><div>Report commands:</div><div>&nbsp; accounts &nbsp;(or balance) show matched accounts and their balances</div><div>&nbsp; entries &nbsp; (or print) show matched journal entries</div><div>&nbsp; postings &nbsp;(or register) show matched postings and running total</div><div>&nbsp; activity &nbsp;show a barchart of transactions per interval</div><div>&nbsp; stats &nbsp; &nbsp; show quick statistics for a journal (or part of it)</div><div><br></div><div>Add-on commands found:</div><div>&nbsp; chart &nbsp; &nbsp; [-- OPTIONS] &nbsp; run the hledger-chart program</div><div>&nbsp; interest &nbsp;[-- OPTIONS] &nbsp; run the hledger-interest program</div><div>&nbsp; report &nbsp; &nbsp;[-- OPTIONS] &nbsp; run the hledger-report program</div><div>&nbsp; vty &nbsp; &nbsp; &nbsp; [-- OPTIONS] &nbsp; run the hledger-vty program</div><div>&nbsp; web &nbsp; &nbsp; &nbsp; [-- OPTIONS] &nbsp; run the hledger-web program</div><div><br></div><div>&nbsp; -? --help &nbsp; &nbsp; Display help message</div><div>&nbsp; &nbsp; &nbsp;--debug &nbsp; &nbsp;Show extra debug output</div><div>&nbsp; -V --version &nbsp;Print version information</div><div><br></div></body></html>