From 34ec7406a1a5174c7ca014dcead28712c7bc87be Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sun, 8 Jan 2017 05:52:45 -0800 Subject: [PATCH] move add-ons and scripts to bin/ --- .gitignore | 1 - bin/README | 20 ++++++++++++-------- {extra => bin}/aliases.sh | 0 extra/makefile => bin/csv.mk | 0 {extra => bin}/hledger-check-dates.hs | 0 {extra => bin}/hledger-equity.hs | 0 {extra => bin}/hledger-print-unique.hs | 0 {extra => bin}/hledger-rewrite.hs | 5 +++-- extra/README | 2 +- hledger/doc/commands.m4.md | 2 +- site/developer-guide.md | 2 +- site/more-docs.md | 4 ++-- site/release-notes.md | 2 +- tests/{extra => bin}/equity.test | 6 +++--- tests/{extra => bin}/rewrite.test | 6 +++--- 15 files changed, 27 insertions(+), 23 deletions(-) rename {extra => bin}/aliases.sh (100%) rename extra/makefile => bin/csv.mk (100%) rename {extra => bin}/hledger-check-dates.hs (100%) rename {extra => bin}/hledger-equity.hs (100%) rename {extra => bin}/hledger-print-unique.hs (100%) rename {extra => bin}/hledger-rewrite.hs (96%) rename tests/{extra => bin}/equity.test (90%) rename tests/{extra => bin}/rewrite.test (81%) diff --git a/.gitignore b/.gitignore index 98a27de7b..b5302f0c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ .* _* -bin/* cabal-dev* cabal.sandbox.config */dist/ diff --git a/bin/README b/bin/README index b918e169d..82d4af69a 100644 --- a/bin/README +++ b/bin/README @@ -1,9 +1,13 @@ -Interesting/historical binaries are kept here, such as: +hledger add-on commands, hledger-related scripts, developer builds. -- Optimised cabal builds, copied here from cabal's bin directory. -- Old versions, with the -X.Y suffix. Used for performance benchmarking. -- Builds for other platforms, with a -PLATFORM-ARCH suffix, maybe compressed for download. -- Non-optimised developer builds compiled with make (*dev). - Used during development for quicker, multi-package, and on-change compilation. -- cabal and/or make builds with profiling enabled (*-prof). - Used for investigating time and space usage. +Scripts named hledger-* are hledger add-on commands. You can run them directly, +or via "hledger [HLEDGEROPTS] ADDONCMD [-- ADDONOPTS]". You should: +1. add this directory to your $PATH +2. ensure the scripts have executable permission (they should already, at least on unix) +3. optionally, compile them for quicker startup +See also: http://hledger.org/hledger.html#add-on-commands + +Other hledger-related scripts include bash aliases, makefile examples, etc. + +hledger development-related binaries also are stored here, such as +old versions for benchmarking, and platform-specific binaries. diff --git a/extra/aliases.sh b/bin/aliases.sh similarity index 100% rename from extra/aliases.sh rename to bin/aliases.sh diff --git a/extra/makefile b/bin/csv.mk similarity index 100% rename from extra/makefile rename to bin/csv.mk diff --git a/extra/hledger-check-dates.hs b/bin/hledger-check-dates.hs similarity index 100% rename from extra/hledger-check-dates.hs rename to bin/hledger-check-dates.hs diff --git a/extra/hledger-equity.hs b/bin/hledger-equity.hs similarity index 100% rename from extra/hledger-equity.hs rename to bin/hledger-equity.hs diff --git a/extra/hledger-print-unique.hs b/bin/hledger-print-unique.hs similarity index 100% rename from extra/hledger-print-unique.hs rename to bin/hledger-print-unique.hs diff --git a/extra/hledger-rewrite.hs b/bin/hledger-rewrite.hs similarity index 96% rename from extra/hledger-rewrite.hs rename to bin/hledger-rewrite.hs index 6543a2bda..571445e22 100755 --- a/extra/hledger-rewrite.hs +++ b/bin/hledger-rewrite.hs @@ -6,8 +6,8 @@ --package text -} -- To run or compile this script, it's easiest to be in the hledger source tree. Then: --- To run it directly: extra/hledger-rewrite.hs ARGS --- To compile it: stack build hledger --only-dependencies && stack ghc extra/hledger-rewrite.hs +-- To run it directly: bin/hledger-rewrite.hs ARGS +-- To compile it: stack build hledger --only-dependencies && stack ghc bin/hledger-rewrite.hs {-| hledger-rewrite [PATTERNS] --add-posting "ACCT AMTEXPR" ... @@ -31,6 +31,7 @@ Related: https://github.com/simonmichael/hledger/issues/99 TODO: - should allow regex matching and interpolating matched name in replacement +- should apply all matching rules to a transaction, not just one - should apply the rule for each matched posting within a transaction, if there's more than one - should be possible to use this on unbalanced entries, eg while editing one diff --git a/extra/README b/extra/README index 32294facf..40d8605ac 100644 --- a/extra/README +++ b/extra/README @@ -1 +1 @@ -Extra stuff: less-maintained add-ons, custom report scripts, shell aliases, make rules... +"Extra" stuff, such as the old hledger-chart package. diff --git a/hledger/doc/commands.m4.md b/hledger/doc/commands.m4.md index 6841fd718..8cd74f2d0 100644 --- a/hledger/doc/commands.m4.md +++ b/hledger/doc/commands.m4.md @@ -884,7 +884,7 @@ $ LEDGER_FILE=unique.journal hledger print-unique ## rewrite Prints all journal entries, adding specified custom postings to matched entries. -[hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/extra/hledger-rewrite.hs), +[hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-rewrite.hs), in hledger's extra directory (compilation optional), adds postings to existing transactions, optionally with an amount based on the existing transaction's first amount. See the script for more details. diff --git a/site/developer-guide.md b/site/developer-guide.md index 8254c2aed..d2e3bbd07 100644 --- a/site/developer-guide.md +++ b/site/developer-guide.md @@ -316,7 +316,7 @@ $ make test -n && echo pkgtest PASSED) || echo pkgtest FAILED (stack exec hledger test \ && echo builtintest PASSED) || echo builtintest FAILED -(COLUMNS=80 PATH=`pwd`/bin:/home/simon/src/hledger/bin:/home/simon/src/hledger/extra:/home/simon/.local/bin:/home/simon/.cabal/bin:/opt/ghc/7.10.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/var/lib/gems/1.9.1/bin stack exec -- shelltest --execdir -- -j16 --hide-successes tests \ +(COLUMNS=80 PATH=`pwd`/bin:/home/simon/src/hledger/bin:/home/simon/.local/bin:/home/simon/.cabal/bin:/opt/ghc/7.10.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/var/lib/gems/1.9.1/bin stack exec -- shelltest --execdir -- -j16 --hide-successes tests \ && echo functest PASSED) || echo functest FAILED ``` diff --git a/site/more-docs.md b/site/more-docs.md index db20a0cd2..f13d95846 100644 --- a/site/more-docs.md +++ b/site/more-docs.md @@ -96,13 +96,13 @@ See also the two Twitter feeds: - [ledger-autosync](https://bitbucket.org/egh/ledger-autosync) downloads/converts/deduplicates OFX data - [hledger-chart](http://hackage.haskell.org/package/hledger-chart) generates simple pie charts (unmaintained) - [hledger-vty](http://hackage.haskell.org/package/hledger-vty) a simple curses-style UI (unmaintained) -- More in [extra/](https://github.com/simonmichael/hledger/tree/master/extra/) +- More in [bin/](https://github.com/simonmichael/hledger/tree/master/bin/) ## Scripting examples - printing average expenses by month - calculating historical account balances -- More in [extra/](https://github.com/simonmichael/hledger/tree/master/extra/) +- More in [bin/](https://github.com/simonmichael/hledger/tree/master/bin/) ## Similar projects diff --git a/site/release-notes.md b/site/release-notes.md index 52b13f88a..8bbcbf96b 100644 --- a/site/release-notes.md +++ b/site/release-notes.md @@ -138,7 +138,7 @@ Simon Michael, Johannes Gerer, Nikolay Orlyuk, Shubham Lagwankar. - fix non-existent "oldtime" dependency ([#431](http://bugs.hledger.org/431)) -- [hledger-equity.hs](https://github.com/simonmichael/hledger/blob/master/extra/hledger-equity.hs) now generates valid journal format when there are multiple commodities +- [hledger-equity.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-equity.hs) now generates valid journal format when there are multiple commodities ### hledger-ui 1.1 diff --git a/tests/extra/equity.test b/tests/bin/equity.test similarity index 90% rename from tests/extra/equity.test rename to tests/bin/equity.test index 341ea4175..d45be4916 100644 --- a/tests/extra/equity.test +++ b/tests/bin/equity.test @@ -1,7 +1,7 @@ # Tests for equity addon # Simple case -runghc ../../extra/hledger-equity.hs -f- -p 2016 assets liabilities +runghc ../../bin/hledger-equity.hs -f- -p 2016 assets liabilities <<< 2016/1/1 open assets:bank $100 @@ -35,7 +35,7 @@ runghc ../../extra/hledger-equity.hs -f- -p 2016 assets liabilities >>>=0 # Verify effect of period -runghc ../../extra/hledger-equity.hs -f- -p 2016 assets liabilities +runghc ../../bin/hledger-equity.hs -f- -p 2016 assets liabilities <<< 2015/12/31 open assets:bank $100 @@ -68,7 +68,7 @@ runghc ../../extra/hledger-equity.hs -f- -p 2016 assets liabilities # # Tear transaction across periods # # TODO: clarify what should we see for this case -# runghc ../../extra/hledger-equity.hs -f- -p 2016 assets liabilities +# runghc ../../bin/hledger-equity.hs -f- -p 2016 assets liabilities # <<< # 2016/1/1 open # assets:bank $100 diff --git a/tests/extra/rewrite.test b/tests/bin/rewrite.test similarity index 81% rename from tests/extra/rewrite.test rename to tests/bin/rewrite.test index fa4b6d6a9..62f24dbc9 100644 --- a/tests/extra/rewrite.test +++ b/tests/bin/rewrite.test @@ -1,7 +1,7 @@ # Tests for rewrite addon # Add proportional income tax (from documentation) -runghc ../../extra/hledger-rewrite.hs -f- ^income --add-posting '(liabilities:tax) *.33' +runghc ../../bin/hledger-rewrite.hs -f- ^income --add-posting '(liabilities:tax) *.33' <<< 2016/1/1 paycheck income:remuneration $-100 @@ -23,7 +23,7 @@ runghc ../../extra/hledger-rewrite.hs -f- ^income --add-posting '(liabilities:ta >>>=0 # Duplicate posting for budgeting (from documentation) -runghc ../../extra/hledger-rewrite.hs -f- expenses:gifts --add-posting '(budget:gifts) *-1' +runghc ../../bin/hledger-rewrite.hs -f- expenses:gifts --add-posting '(budget:gifts) *-1' <<< 2016/1/1 withdraw assets:cash $20 @@ -45,7 +45,7 @@ runghc ../../extra/hledger-rewrite.hs -f- expenses:gifts --add-posting '(budget: >>>=0 # Add absolute bank processing fee -runghc ../../extra/hledger-rewrite.hs -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee $5' --add-posting 'assets:bank $-5' +runghc ../../bin/hledger-rewrite.hs -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee $5' --add-posting 'assets:bank $-5' <<< 2016/1/1 withdraw assets:cash $20