#!/bin/bash

# Skrypt convertcurrency przeliczający waluty na podstawie ich
# identyfikatorów ISO. Wykorzystywany jest w tym celu konwerter
# dostępny pod adresem http://www.google.com/finance/converter

if [ $# -eq 0 ]; then
   echo "Użycie: $(basename $0) kwota waluta to waluta"
   echo "Najbardziej popularne waluty: PLN, USD, EUR, RUB, HUF."
   echo -n "Aby wyświetlić listę kodów wszystkich walut, "
   echo "użyj polecenia \"$(basename $0) list\"."
fi

if [ $(uname) = "Darwin" ]; then
  LANG=C # Korekta błędnej sekwencji bajtów w programie lynx w systemie macOS
fi
url="https://www.google.com/finance/converter"
tempfile="/tmp/converter.$$"
lynx=$(which lynx)
 
currencies=$($lynx -source "$url" | grep "option  value=" | \
    cut -d\" -f2- | sed 's/">/ /' | cut -d\( -f1 | sort | uniq)

########### Obsługa argumentów innych niż przeliczanie walut.

if [ $# -ne 4 ] ; then
  if [ "$1" = "list" ] ; then
    # Wyświetlenie listy symboli walut obsługiwanych przez konwerter.
    echo "Lista obsługiwanych walut:"
    echo "$currencies"
  fi
  exit 0
fi

########### Część przeliczająca waluty.

if [ $3 != "to" ] ; then
  echo "Użycie: $(basename $0) kwota waluta TO waluta"
  echo "(aby uzyskać listę walut, wpisz \"$(basename $0) list\")"
  exit 0
fi

amount=$1
basecurrency="$(echo $2 | tr '[:lower:]' '[:upper:]')"
targetcurrency="$(echo $4 | tr '[:lower:]' '[:upper:]')"

# Właściwa konwersja.

$lynx -source "$url?a=$amount&from=$basecurrency&to=$targetcurrency" | \
  grep 'id=currency_converter_result' | sed 's/<[^>]*>//g'

exit 0
