]> git.treefish.org Git - bitvalue.git/blob - bitvalue
Improved error handling
[bitvalue.git] / bitvalue
1 #!/bin/bash
2
3 CONFIG=~/.bitvaluerc
4 HOST=data.bitcoinity.org
5
6 TIMESPAN="24h"
7
8 USAGE="Usage: $(basename "$0") [-h] [-t val]
9 Simple bash script to visualize the value of your bitcoin investment.
10
11 Arguments:
12   -h  show this help text
13   -t  set the timespan (default: $TIMESPAN)"
14
15 while getopts ':ht:' option; do
16     case "$option" in
17         h) echo "$USAGE"
18            exit
19            ;;
20         t) TIMESPAN=$OPTARG
21            ;;
22         :) printf "missing argument for -%s\n" "$OPTARG" >&2
23            echo "$usage" >&2
24            exit 1
25            ;;
26         \?) printf "illegal option: -%s\n" "$OPTARG" >&2
27             echo "$usage" >&2
28             exit 1
29             ;;
30     esac
31 done
32 shift $((OPTIND - 1))
33
34 if [ ! -f $CONFIG ]; then
35     cat << EOF > $CONFIG
36 EXCHANGE="bitstamp"
37 CURRENCY="EUR"
38 ZERO_RATE="1"
39 ZERO_VALUE="1"
40 EOF
41     echo "Created config: $CONFIG - Adapt config parameters!"
42 fi
43
44 source $CONFIG
45
46 if ! ping -c 1 $HOST >/dev/null 2>&1; then
47     echo "Host $HOST is unreachable!"
48     exit 1
49 fi
50
51 cat << EOF | gnuplot 2>/dev/null
52 set terminal dumb
53 set datafile separator ","
54 set xdata time
55 set timefmt "%Y-%m-%d %H:%M:%S UTC"
56 set title "EXCHANGE: $EXCHANGE | TIMESPAN: $TIMESPAN\nZERO RATE: $ZERO_RATE $CURRENCY | ZERO VALUE: $ZERO_VALUE $CURRENCY"
57 plot "< wget -q -O - \"https://$HOST/export_data.csv?currency=$CURRENCY&data_type=price&exchange=$EXCHANGE&t=l&timespan=$TIMESPAN\"" \
58      using 1:(\$3/$ZERO_RATE*$ZERO_VALUE) with lines title ""
59 EOF
60
61 if [ $? -ne 0 ]; then
62     echo "Error while preparing data!" >&2
63     exit 1
64 fi
65
66 exit 0