summaryrefslogtreecommitdiff
path: root/ledger-price-db-update.sh
blob: 478efb96834f33d061b23349b7881d1fa2c2e667 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
#
# Get currency exchanges rate and update a ledger price file.
#

set -e

LEDGER="$HOME/.ledgerrc"
if [[ ! -f "$LEDGER" ]] ; then
    echo "No ledger configuration file: $LEDGER" >&2
    exit 13
fi
PRICE_DB_FILE=$(sed -nE "s/^--price-db (.*)/\1/p" "$LEDGER")
PRICE_DB_FILE="${PRICE_DB_FILE/#\~/$HOME}"

xe() {
    curl -s "http://download.finance.yahoo.com/d/quotes.csv?s=$1&f=p"
}

print_rate() {
    currency="$1"
    symbol="$2"

    val=$(xe "$currency=X")

    test -n "$val" && echo P $(date +"%Y/%m/%d %H:%M:%S") $symbol $val R
}

{
    print_rate "USDRUB" "\$"
    print_rate "EURRUB" "€"
    print_rate "PLNRUB" "P"
} >> "$PRICE_DB_FILE"