mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-07 21:15:19 +03:00
bin: hledger-number
This commit is contained in:
parent
6c852a8252
commit
50142a0aec
34
bin/hledger-number.sh
Executable file
34
bin/hledger-number.sh
Executable file
@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env bash
|
||||
# hledger-number - try to extract just one single machine-readable number from hledger:
|
||||
# the grand total of `hledger balance` run with any provided arguments.
|
||||
# Requires hledger 1.24 or newer (the December 2021 release, see https://hledger.org/download.html )
|
||||
# https://gist.github.com/simonmichael/feee7fc1567c5f10355f952b87bd3090
|
||||
|
||||
VALUATION_COMMODITY="$"
|
||||
hledger bal -0 -N -X "$VALUATION_COMMODITY" --infer-market-prices -c "$VALUATION_COMMODITY 1000" --layout=bare "$@" | awk '{print $1}'
|
||||
|
||||
# Tired of complex financial reports ? This is a silly but fun and
|
||||
# occasionally useful script showing how to get "one number" semi-robustly
|
||||
# without writing a haskell script. With this installed in PATH, then eg:
|
||||
#
|
||||
# $ hledger number lodging
|
||||
# 200
|
||||
#
|
||||
# Explanation:
|
||||
# -0 (--depth 0) hides all but top-level accounts
|
||||
# -N (--no-total) hides the totals line
|
||||
# -X COMM (--value=end,COMM) converts to a single commodity if possible (needs at least one suitable P market price declaration)
|
||||
# --infer-market-prices guesses P price from conversion transactions if necessary
|
||||
# -c (--commodity-style) sets a predictable number format free of thousands separators
|
||||
# --layout=bare moves the commodity symbol away from the number
|
||||
# awk discards all but the number
|
||||
#
|
||||
# A note: If you're new to hledger/PTA and thinking it shouldn't be this hard..
|
||||
# well of course normally when a hledger user wants to see one number, they run
|
||||
# a much simpler command like `hledger bal lodging` or `hledger reg lodging`.
|
||||
# This script is exploring how to anticipate and neutralise all variations
|
||||
# caused by account structure, number formatting, mulltiple commodities, etc.
|
||||
# so as to *reliably* produce *one machine readable number* from highly diverse
|
||||
# data. As we figure out good approaches we'll build them in so that eg
|
||||
# producing data for charting is as easy as it can be, while still being
|
||||
# general.
|
Loading…
Reference in New Issue
Block a user