-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtransaction.sh
executable file
·114 lines (98 loc) · 3.27 KB
/
transaction.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/bin/bash
#######################################################################
# Config file path and name
#######################################################################
filepath=$(echo "$0" | grep -o -P '(?<=).*(?=/transaction.sh)')
file="$filepath/config.js"
#######################################################################
# Check if transaction string empty
#######################################################################
if [[ -z "$1" ]]; then
echo "Error: txid not defined."
exit 0
fi
#######################################################################
# Read line by line to grab database connection info
#######################################################################
while IFS= read -r line
do
if [[ $line == *"dbHost"* ]]; then
dbhost="$line"
fi
if [[ $line == *"dbName"* ]]; then
dbName="$line"
fi
if [[ $line == *"dbUser"* ]]; then
dbUser="$line"
fi
if [[ $line == *"dbPassword"* ]]; then
dbPassword="$line"
fi
if [[ $line == *"dbPort"* ]]; then
dbPort="$line"
fi
done <"$file"
#######################################################################
# Check if any result is empty and exit
#######################################################################
if [[ -z "$dbhost" ]]; then
echo "Error: dbhost not defined."
exit 0
fi
if [[ -z "$dbName" ]]; then
echo "Error: dbName not defined."
exit 0
fi
if [[ -z "$dbUser" ]]; then
echo "Error: dbUser not defined."
exit 0
fi
if [[ -z "$dbPassword" ]]; then
echo "Error: dbPassword not defined."
exit 0
fi
if [[ -z "$dbPort" ]]; then
echo "Error: dbPort not defined."
exit 0
fi
#######################################################################
# Parse strings
#######################################################################
dbhost=$(echo $dbhost | sed 's/^.*dbHost"//' | grep -o -P '(?<=").*(?=")')
dbName=$(echo $dbName | sed 's/^.*dbName"//' | grep -o -P '(?<=").*(?=")')
dbUser=$(echo $dbUser | sed 's/^.*dbUser"//' | grep -o -P '(?<=").*(?=")')
dbPassword=$(echo $dbPassword | sed 's/^.*dbPassword"//' | grep -o -P '(?<=").*(?=")')
dbPort=$(echo "${dbPort//[!0-9]/}")
#######################################################################
# Check if any result is empty and exit
#######################################################################
if [[ -z "$dbhost" ]]; then
echo "Error: dbhost not defined."
exit 0
fi
if [[ -z "$dbName" ]]; then
echo "Error: dbName not defined."
exit 0
fi
if [[ -z "$dbUser" ]]; then
echo "Error: dbUser not defined."
exit 0
fi
if [[ -z "$dbPassword" ]]; then
echo "Error: dbPassword not defined."
exit 0
fi
if [[ -z "$dbPort" ]]; then
echo "Error: dbPort not defined."
exit 0
fi
#######################################################################
# Write transaction to db
#######################################################################
mysql --user=$dbUser --password=$dbPassword --host=$dbhost --port=$dbPort $dbName 2>/dev/null << EOF
INSERT INTO transactions (txid) VALUES ("$1");
EOF
#######################################################################
# Success
#######################################################################
echo "Transaction received and saved: $1"