30 lines
585 B
Plaintext
30 lines
585 B
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
shop="$1"
|
||
|
|
||
|
askwithdefault() {
|
||
|
read -p "$1 [$2] " answer
|
||
|
echo "${answer:-$2}"
|
||
|
}
|
||
|
|
||
|
transaction="$(mktemp)"
|
||
|
trap "rm '$transaction'" EXIT KILL
|
||
|
exec 3> "$transaction"
|
||
|
|
||
|
date="$(askwithdefault 'Transaction date?' "$(date +'%Y-%m-%d')")"
|
||
|
printf '%s %s\n' "$date" "$shop" >&3
|
||
|
while account="$(hledger accounts desc:"$shop" | sk)"; do
|
||
|
read -p "Price? " price
|
||
|
read -p "Comment? " comment
|
||
|
printf " %s%$((66 - ${#account}))s" "$account" "€$price" >&3
|
||
|
if [ -n "$comment" ]; then
|
||
|
printf ' ; %s\n' "$comment" >&3
|
||
|
else
|
||
|
printf '\n' >&3
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
exec 3>&-
|
||
|
|
||
|
cat "$transaction"
|