68 lines
2.1 KiB
Makefile
68 lines
2.1 KiB
Makefile
# download ledgers for all years
|
|
all: \
|
|
dc17 \
|
|
dc18 \
|
|
dc19 \
|
|
dc20 \
|
|
dc21 \
|
|
dc22 \
|
|
dc23 \
|
|
dc24 \
|
|
dc25 \
|
|
# dc26 \
|
|
|
|
recent: \
|
|
dc24 \
|
|
dc25 \
|
|
# dc26 \
|
|
|
|
# make dc-YY - clone the budget directory for this year, make it hledger-readable, add a top-level file
|
|
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' > $*.hledger
|
|
|
|
# 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-'HLEDGERARGS' - run a hledger command on each repo's main journal
|
|
hledger-%:
|
|
@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
|
|
|
|
clean:
|
|
rm -rf dc* 2*.ledger
|
|
|
|
# make rg-PAT - ripgrep for PAT in ledger,inc,db files in all years
|
|
rg-%:
|
|
rg -g '*.{ledger,inc,db}' '$*'
|
|
|
|
# make all years hledger-readable
|
|
fixups:
|
|
# ensure at least two whitespace chars before amounts:
|
|
sed -i -E 's/(\w)\t(\w)/ \t/' dc*/budget/*.ledger
|
|
# ensure a decimal mark in commodity declarations:
|
|
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)
|
|
|
|
# save patch files for each year
|
|
save-patches:
|
|
for d in dc*; do git --no-pager -C $$d diff > patches/$$d.patch; done
|
|
|