30 lines
585 B
Bash
Executable File
30 lines
585 B
Bash
Executable File
#!/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"
|