From 85bedb77accf11ad04f8999b9a6504e2dff39c9b Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 9 Jan 2026 22:28:29 -1000 Subject: [PATCH] ;examples:debconf: update scripts, restore Ledger price-db support --- examples/debconf/Makefile | 30 +++++++++++++------- examples/debconf/README.md | 25 +++++++++------- examples/debconf/{all.ledger => all.hledger} | 2 +- 3 files changed, 34 insertions(+), 23 deletions(-) rename examples/debconf/{all.ledger => all.hledger} (74%) diff --git a/examples/debconf/Makefile b/examples/debconf/Makefile index f31df5e42..7dbc1468f 100644 --- a/examples/debconf/Makefile +++ b/examples/debconf/Makefile @@ -21,15 +21,27 @@ dc%: git clone --filter=blob:none --sparse http://salsa.debian.org/debconf-team/public/data/$@ git -C $@ sparse-checkout set --no-cone budget '!budget/invoices' git -C $@ apply --allow-empty ../patches/$@.patch - printf 'include $@/budget/journal.ledger\ninclude $@/budget/forex.db\n' > 20$*.ledger + printf 'include $@/budget/journal.ledger\ninclude $@/budget/forex.db\n' > $*.hledger -# make check-ledger, check-hledger - check readability of all years (main journal) -check-%: - @for d in dc*; do printf "$$d: "; $* -f $$d/budget/journal.ledger stats >/dev/null && echo ok; done +# make cmd-'CMD' - run a command in each repo's budget directory +cmd-%: + @for d in dc*; do printf "\n$$d:\n"; (cd $$d/budget; $*;) done -# make hledger-'ARGS' - run a hledger command on all years (main journal) +# make hledger-'HLEDGERARGS' - run a hledger command on each repo's main journal hledger-%: - @for d in dc*; do printf "\n$$d:\n"; hledger -f $$d/budget/journal.ledger $*; done + @for d in dc*; do printf "\n$$d:\n"; hledger -f $$(echo $$d | sed 's/dc//').hledger $*; done + +# check hledger readability of all repos' main journal +hledger-check: + @for d in dc*; do printf "$$d: "; hledger -f $$(echo $$d | sed 's/dc//').hledger stats >/dev/null && echo ok; done + +# make ledger-'LEDGERARGS' - run a ledger command on each repo's main journal +ledger-%: + @for d in dc*; do printf "\n$$d:\n"; ledger -f $$d/budget/journal.ledger --price-db $$d/budget/forex.db $*; done + +# check Ledger readability of all repos' main journal +ledger-check: + @for d in dc*; do printf "$$d: "; ledger -f $$d/budget/journal.ledger --price-db $$d/budget/forex.db stats >/dev/null && echo ok; done # maintenance @@ -49,11 +61,7 @@ fixups: sed -i -E 's/^( +format +\w+ +[0-9]+(,[0-9]+)+)$$/\1.00/' dc*/budget/commodities.inc # convert amount expressions to simple amounts (use ledgereval or ledger eval) -# show uncommitted changes in each year -diff: - for d in dc*; do echo $$d:; git -C $$d diff; done - # save patch files for each year save-patches: - for d in dc*; do GIT_PAGER= git -C $$d diff >patches/$$d.patch; done + for d in dc*; do git --no-pager -C $$d diff > patches/$$d.patch; done diff --git a/examples/debconf/README.md b/examples/debconf/README.md index 49d363a1b..98b12c290 100644 --- a/examples/debconf/README.md +++ b/examples/debconf/README.md @@ -9,11 +9,10 @@ To clone just the accounting data for all years: `make`\ Or to clone just a few recent years: `make recent` Some patches for hledger readability will be applied; those might need updating from time to time.\ -To check hledger readability: `make check-hledger`\ -To check ledger readability: `make check-ledger` +To check hledger readability: `make hledger-check`\ +To check ledger readability: `make ledger-check` -For convenient reporting, a top-level journal file is created for each year's repo.\ -These also include the forex.db files, allowing currency conversion (when rates exist; you might need to fetch more). +For convenient reporting, a top-level .hledger file that also includes the foreign exchange rates is created for each year's repo. The `hledger.conf` file sets a few non-essential defaults when you are in this directory. @@ -25,18 +24,22 @@ and [other docs](https://hledger.org/doc.html). Single year reports: -- `hledger -f 2025.ledger is` -- `hledger -f 2025.ledger is -V` -- `hledger -f 2025.ledger is -VQSTt --drop 1` +- `hledger -f 25.hledger is` +- `hledger -f 25.hledger is -V` +- `hledger -f 25.hledger is -VQSTt --drop 1` -The `all.ledger` file reads from all the downloaded repos: +The `all.hledger` file reads from all the downloaded repos' main journals: -- `hledger -f all.ledger is -1 -YTN` -- `hledger -f all.ledger is -1 -YT -X USD` +- `hledger -f all.hledger is -1 -YTN` +- `hledger -f all.hledger is -1 -YT -X USD` -`make hledger-'ARGS'` runs a hledger command in each downloaded repo: +`make hledger-'HLEDGERARGS'` runs a hledger command on each repo's main journal: - `make hledger-accounts` - `make hledger-stats | grep 'Txns '` - `make hledger-'bs -2'` - `make hledger-'is -2` + +`make ledger-'LEDGERARGS'` does the same but with Ledger. + +`make cmd-'CMD` runs a command in each repo. diff --git a/examples/debconf/all.ledger b/examples/debconf/all.hledger similarity index 74% rename from examples/debconf/all.ledger rename to examples/debconf/all.hledger index 05d0a1f53..b9a5305c3 100644 --- a/examples/debconf/all.ledger +++ b/examples/debconf/all.hledger @@ -2,4 +2,4 @@ alias Expenses=expenses alias incomes=income alias Incomes=income -include 2*.ledger +include [0-9]*.hledger