From 9adac061d2916c0a07a26d25402a5b630542585c Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Wed, 27 Jan 2021 13:12:21 -0500 Subject: add fuzzy hledger add script --- hledger-fadd | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 hledger-fadd diff --git a/hledger-fadd b/hledger-fadd new file mode 100755 index 0000000..2ce276d --- /dev/null +++ b/hledger-fadd @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +function fz { + readarray -t lines < <(fzf --expect alt-enter --print-query "$@") + query=${lines[0]} + enter=${lines[1]} + match=${lines[2]} + if [[ "$enter" == "alt-enter" ]] + then + echo "$query" + else + echo "$match" + fi +} + +date=$(for n in $(seq 0 10); do date -d"$n days ago" "+%Y/%m/%d (%a)"; done | fz | awk '{ print $1 }') +echo "date: $date" + +payee=$(hledger payees | fz --prompt="payee: ") +echo "payee: $payee" + +# TODO: handle more than just 2 accounts +to_account=$(hledger accounts | fz --prompt="to account: ") +echo "to account: $to_account" +read -rep "to amount: " to_amount + + +from_account=$(hledger accounts | fz --prompt="from account: ") +echo "from account: $from_account" +read -rep "from amount: " from_amount + + +read -r -d '' TX <> "$tmp" +cat "$tmp" + +read -rep "all good? y/e/n " ok +case $ok in + y) + cat "$tmp" >> ~/org/fund/ledger.journal + ;; + e) + vim "$tmp" && cat "$tmp" >> ~/org/fund/ledger.journal + ;; + *) + exit 1 + ;; +esac -- cgit v1.2.3