;examples: debconf: more reports, all.ledger
This commit is contained in:
parent
343f957cad
commit
1feebd0813
@ -1,7 +1,4 @@
|
|||||||
recent: \
|
# download ledgers for all years
|
||||||
dc24 \
|
|
||||||
dc25 \
|
|
||||||
|
|
||||||
all: \
|
all: \
|
||||||
dc17 \
|
dc17 \
|
||||||
dc18 \
|
dc18 \
|
||||||
@ -12,12 +9,19 @@ all: \
|
|||||||
dc23 \
|
dc23 \
|
||||||
dc24 \
|
dc24 \
|
||||||
dc25 \
|
dc25 \
|
||||||
|
# dc26 \
|
||||||
|
|
||||||
# make dc-YY - clone the budget directory for this year and make it hledger-readable
|
recent: \
|
||||||
|
dc24 \
|
||||||
|
dc25 \
|
||||||
|
# dc26 \
|
||||||
|
|
||||||
|
# make dc-YY - clone the budget directory for this year, make it hledger-readable, add a top-level file
|
||||||
dc%:
|
dc%:
|
||||||
git clone --filter=blob:none --sparse http://salsa.debian.org/debconf-team/public/data/$@
|
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 $@ sparse-checkout set --no-cone budget '!budget/invoices'
|
||||||
git -C $@ apply --allow-empty ../patches/$@.patch
|
git -C $@ apply --allow-empty ../patches/$@.patch
|
||||||
|
printf 'include $@/budget/journal.ledger\ninclude $@/budget/forex.db\n' > 20$*.ledger
|
||||||
|
|
||||||
# make check-ledger, check-hledger - check readability of all years (main journal)
|
# make check-ledger, check-hledger - check readability of all years (main journal)
|
||||||
check-%:
|
check-%:
|
||||||
@ -27,29 +31,17 @@ check-%:
|
|||||||
hledger-%:
|
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 $$d/budget/journal.ledger $*; done
|
||||||
|
|
||||||
stats:
|
|
||||||
@make -s hledger-stats
|
|
||||||
|
|
||||||
accounts:
|
|
||||||
@make -s hledger-accounts
|
|
||||||
|
|
||||||
is:
|
|
||||||
@make -s hledger-'is -2'
|
|
||||||
|
|
||||||
bs:
|
|
||||||
@make -s hledger-'bs -2'
|
|
||||||
|
|
||||||
|
|
||||||
# maintenance
|
# maintenance
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf dc*
|
rm -rf dc* 2*.ledger
|
||||||
|
|
||||||
# make rg-PAT - ripgrep for PAT in ledger,inc,db files in all years
|
# make rg-PAT - ripgrep for PAT in ledger,inc,db files in all years
|
||||||
rg-%:
|
rg-%:
|
||||||
rg -g '*.{ledger,inc,db}' '$*'
|
rg -g '*.{ledger,inc,db}' '$*'
|
||||||
|
|
||||||
# apply hledger readability fixes to all years
|
# make all years hledger-readable
|
||||||
fixups:
|
fixups:
|
||||||
# ensure at least two whitespace chars before amounts:
|
# ensure at least two whitespace chars before amounts:
|
||||||
sed -i -E 's/(\w)\t(\w)/ \t/' dc*/budget/*.ledger
|
sed -i -E 's/(\w)\t(\w)/ \t/' dc*/budget/*.ledger
|
||||||
|
|||||||
@ -1,25 +1,41 @@
|
|||||||
# DebConf ledgers
|
# DebConf ledgers
|
||||||
|
|
||||||
DebConf does their accounting with Ledger.
|
DebConf has done their accounting with Ledger since 2017.\
|
||||||
Eg: <https://salsa.debian.org/debconf-team/public/data/dc25/-/tree/main/budget>
|
Eg: <https://salsa.debian.org/debconf-team/public/data/dc25/-/tree/main/budget>\
|
||||||
|
Here are some scripts and notes to help view them with hledger.
|
||||||
|
|
||||||
Each year has its own repo, and the repos are big.
|
Each year has its own repo, and the repos are big.\
|
||||||
To clone just the accounting data for a few recent years: `make`\
|
To clone just the accounting data for all years: `make`\
|
||||||
Or to clone all years, starting 2017: `make all`
|
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.\
|
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 hledger readability: `make check-hledger`\
|
||||||
To check ledger readability: `make check-ledger`
|
To check ledger readability: `make check-ledger`
|
||||||
|
|
||||||
To run some basic reports in all years:
|
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).\
|
||||||
|
|
||||||
- `make is`
|
The `hledger.conf` file sets a few non-essential defaults when you are in this directory.\
|
||||||
- `make bs`
|
Here are hledger's
|
||||||
- `make accounts`
|
[manual](https://hledger.org/hledger.html)
|
||||||
- `make stats | grep 'Txns '`
|
and [other docs](https://hledger.org/doc.html).
|
||||||
|
|
||||||
To run an any hledger report in all years: `make hledger-'ARGS'`\
|
## Report examples
|
||||||
Eg:
|
|
||||||
|
|
||||||
- `make hledger-'activity -W'`
|
Single year reports:
|
||||||
- `make hledger-'is -tYT --layout=bare'`
|
|
||||||
|
- `hledger -f 2025.ledger is`
|
||||||
|
- `hledger -f 2025.ledger is -V`
|
||||||
|
- `hledger -f 2025.ledger is -VQSTt --drop 1`
|
||||||
|
|
||||||
|
The `all.ledger` file reads all the downloaded repos at once:
|
||||||
|
|
||||||
|
- `hledger -f all.ledger is -1 -YTN`
|
||||||
|
- `hledger -f all.ledger is -1 -YT -X USD`
|
||||||
|
|
||||||
|
`make hledger-'ARGS'` runs a hledger command in each downloaded repo:
|
||||||
|
|
||||||
|
- `make hledger-accounts`
|
||||||
|
- `make hledger-stats | grep 'Txns '`
|
||||||
|
- `make hledger-'bs -2'`
|
||||||
|
- `make hledger-'is -2`
|
||||||
|
|||||||
5
examples/debconf/all.ledger
Normal file
5
examples/debconf/all.ledger
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
alias Expenses=expenses
|
||||||
|
alias incomes=income
|
||||||
|
alias Incomes=income
|
||||||
|
|
||||||
|
include 2*.ledger
|
||||||
Loading…
Reference in New Issue
Block a user