#!/bin/bash

CONFIG=~/.bitvaluerc
HOST=data.bitcoinity.org

TIMESPAN="24h"

USAGE="Usage: $(basename "$0") [-h] [-t 10m|1h|24h|3d|7d|30d|6m|2y|5y|all]
Simple bash script to visualize the value of your bitcoin investment.

Arguments:
  -h  show this help text
  -t  used timespan (default: $TIMESPAN)"

while getopts ':ht:' option; do
    case "$option" in
        h) echo "$USAGE"
           exit
           ;;
        t) TIMESPAN=$OPTARG
           ;;
        :) printf "missing argument for -%s\n" "$OPTARG" >&2
           echo "$usage" >&2
           exit 1
           ;;
        \?) printf "illegal option: -%s\n" "$OPTARG" >&2
            echo "$usage" >&2
            exit 1
            ;;
    esac
done
shift $((OPTIND - 1))

if [ ! -f $CONFIG ]; then
    cat << EOF > $CONFIG
EXCHANGE="bitstamp"
CURRENCY="EUR"
BTC="1"
EOF
    echo "Created config: $CONFIG - Adapt config parameters!"
fi

source $CONFIG

URL="http://$HOST/export_data.csv?\
currency=$CURRENCY&\
data_type=price&\
exchange=$EXCHANGE&\
t=l&\
timespan=$TIMESPAN"

if ! wget -S --spider $URL 2>&1 | grep 'HTTP/1.1 200 OK' >/dev/null; then
    echo "Can not retrieve data from $HOST!";
    exit 1
fi

cat << EOF | gnuplot 2>/dev/null
set terminal dumb
set datafile separator ","
set xdata time
set timefmt "%Y-%m-%d %H:%M:%S UTC"
set title "EXCHANGE: $EXCHANGE | TIMESPAN: $TIMESPAN\nCURRENCY: $CURRENCY | BTC: $BTC "
plot "< wget -q -O - \"$URL\"" using 1:(\$3*$BTC) with lines title ""
EOF

if [ $? -ne 0 ]; then
    echo "Error while preparing data!" >&2
    exit 1
fi

exit 0