#!/bin/bash

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

TIMESPAN="24h"

USAGE="Usage: $(basename "$0") [-h] [-t val]
Simple bash script to visualize the value of your bitcoin investment.

Arguments:
  -h  show this help text
  -t  set the 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"
ZERO_RATE="1"
ZERO_VALUE="1"
EOF
    echo "Created config: $CONFIG - Adapt config parameters!"
fi

source $CONFIG

if ! ping -c 1 $HOST >/dev/null 2>&1; then
    echo "Host $HOST is unreachable!"
    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\nZERO RATE: $ZERO_RATE $CURRENCY | ZERO VALUE: $ZERO_VALUE $CURRENCY"
plot "< wget -q -O - \"https://$HOST/export_data.csv?currency=$CURRENCY&data_type=price&exchange=$EXCHANGE&t=l&timespan=$TIMESPAN\"" \
     using 1:(\$3/$ZERO_RATE*$ZERO_VALUE) with lines title ""
EOF

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

exit 0