]> git.treefish.org Git - bitvalue.git/blobdiff - bitvalue
Improved error handling
[bitvalue.git] / bitvalue
index 617305eaa7fcd1df1138fd2d0a5ddc105f9a0b28..9cb4ee96eaf94cb081d4e9964708d3e358e6efac 100755 (executable)
--- a/bitvalue
+++ b/bitvalue
@@ -1,6 +1,35 @@
 #!/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
@@ -14,18 +43,24 @@ fi
 
 source $CONFIG
 
-if [ ! -z "$1" ]; then
-    TIMESPAN="$1"
-else
-    TIMESPAN="30d"
+if ! ping -c 1 $HOST >/dev/null 2>&1; then
+    echo "Host $HOST is unreachable!"
+    exit 1
 fi
 
-cat << EOF | gnuplot
+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://data.bitcoinity.org/export_data.csv?currency=$CURRENCY&data_type=price&exchange=$EXCHANGE&t=l&timespan=$TIMESPAN\"" \
+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