1
0
mirror of https://github.com/Llewellynvdm/CoinRate.git synced 2024-11-24 03:27:34 +00:00
CoinRate/getPrice.sh

198 lines
4.9 KiB
Bash
Executable File

#!/bin/bash
#/--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
# __ __ _ _____ _ _ __ __ _ _ _
# \ \ / / | | | __ \ | | | | | \/ | | | | | | |
# \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
# \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
# \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
# \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
# | |
# |_|
#/-------------------------------------------------------------------------------------------------------------------------------/
#
# @author Llewellyn van der Merwe <https://github.com/Llewellynvdm>
# @copyright Copyright (C) 2016. All Rights Reserved
# @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
#
#=================================================================================================================================
# GETPRICE
#=================================================================================================================================
# get script path
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
VDMHOME=~/
# add the main file
. "$DIR/main.sh"
# main function
function main () {
# run factory
if (( "$Factory" == 1 )); then
# run the factory
runFactory
else
# run basic price get
runBasicGet
fi
}
# Help display function
function show_help {
cat << EOF
Usage: ${0##*/:-} [OPTION...]
Getting Coin Value in Fiat Currency at set price
API options
======================================================
-I Select the api to query
Options:
1 = [cex] cex.io - (default)
2 = [shapeshift]
-x Hide API name from message
Basic options
======================================================
-c Currency to watch (c:_)
example: BTC
-C Target Currecy to Display (_:t)
example: USD
-o How often should the message be send/shown
0 = once per/day
1 = once per/hour
2 = everyTime (default)
3 = only once
-v Value (above or below) at which to send/send notice
example: 17000 or 14000,15000
-A Value Above at which to send notice
example: 17000 or 19000,18000
-B Value Below at which to send notice
example: 14000 or 14000,15000
-b Send Notice below target value once a day
-a Send Notice above target value once a day (default)
Advance options (factory option)
======================================================
-f Path to file with multiple currency pair options
(see example factory.txt file for details)
Message options
======================================================
-q Quiet - Turn off terninal output
-t Send A Telegram Notice
-s Send A SMS Notice
-l Show A Linux Notice via zenity
-h display this help menu
======================================================
Vast Development Method (vdm.io)
======================================================
EOF
exit 1
}
# getopts howtos: (mainly for me)
# http://www.theunixschool.com/2012/08/getopts-how-to-pass-command-line-options-shell-script-Linux.html
# http://mywiki.wooledge.org/BashFAQ/035
# http://wiki.bash-hackers.org/howto/getopts_tutorial
while getopts hc:C:o:v:B:A:baqtslf:I: opt; do
case $opt in
I)
if (( "$OPTARG" == 2 )); then
API_target="shapeshift"
fi
;;
x)
API_show=0
;;
h)
show_help >&2
exit 1
;;
c)
Currency=$OPTARG
;;
C)
Target=$OPTARG
;;
o)
sendSwitch=$OPTARG
;;
v)
TargetValue=$OPTARG
TargetAll=1
;;
B)
TargetBelowValue=$OPTARG
TargetBelow=1
;;
A)
TargetAboveValue=$OPTARG
TargetAbove=1
;;
b)
BelowValue=1
;;
a)
AboveValue=1
;;
q)
allowEcho=0
;;
t)
Telegram=1
;;
s)
SMS=1
;;
l)
LinuxNotice=1
;;
f)
FilePath=$OPTARG
# make sure we have a file
if [ ! -f "$FilePath" ]
then
echo "File path ($FilePath) does not exist, please add correct path"
show_help >&2
exit 1
fi
Factory=1
# reset all basic settings
Currency="BTC"
Target="USD"
TargetValue=0
TargetBelowValue=0
TargetAboveValue=0
TargetAll=0
TargetBelow=0
TargetAbove=0
BelowValue=0
AboveValue=0
;;
*)
show_help >&2
exit 1
;;
\?)
echo "Invalid option: -$OPTARG" >&2
echo
show_help >&2
exit 1
;;
esac
done
# BUILD Cointracker file per/API
COINTracker="${VDMHOME}/.cointracker_${API_target}"
# make sure the tracker file is set
if [ ! -f "$COINTracker" ]
then
> "$COINTracker"
fi
# Run the script
main