@ -101,7 +101,7 @@ dbconnect="psql -h ${DB_HOST} -p ${DB_PORT} -U ${DB_USER} -d ${DB_NAME}"
get_name() {
get_name() {
# Arg1 == Account ID
# Arg1 == Account ID
# Arg2 == "bold" for bold text
# Arg2 == "bold" for bold text
NAME=$(eval " $dbconnect -c \ "SELECT id,name,created FROM account WHERE id = $1;\" " | grep -E "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}" | awk -F '|' '{print $2}')
NAME=$($dbconnect -c "SELECT id,name,created FROM account WHERE id = $1;" | grep -E "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}" | awk -F '|' '{print $2}')
NAME=${NAME#"${NAME%%[! ]*}"} NAME=${NAME%"${NAME##*[! ]}"} #Strip leading/trailing space from $NAME
NAME=${NAME#"${NAME%%[! ]*}"} NAME=${NAME%"${NAME##*[! ]}"} #Strip leading/trailing space from $NAME
if [ "$2" == "bold" ]; then
if [ "$2" == "bold" ]; then
@ -119,8 +119,8 @@ create_account() {
case $CONFIRM in
case $CONFIRM in
[Yy])
[Yy])
printf "\n$(tput bold)Creating account...\n\n$(tput sgr0)"
printf "\n$(tput bold)Creating account...\n\n$(tput sgr0)"
eval " $dbconnect -c \ "INSERT INTO account (name,created) VALUES ('${name}','${tstamp}');\" " &&
$dbconnect -c "INSERT INTO account (name,created) VALUES ('${name}','${tstamp}');" &&
eval " $dbconnect -c \ "INSERT INTO balance (id,gold) VALUES ((SELECT id FROM account WHERE name = '${name}'),'0');\" " &&
$dbconnect -c "INSERT INTO balance (id,gold) VALUES ((SELECT id FROM account WHERE name = '${name}'),'0');" &&
printf "\n$(tput bold)$(tput setaf 2)DONE!\n\n$(tput sgr0)" ||
printf "\n$(tput bold)$(tput setaf 2)DONE!\n\n$(tput sgr0)" ||
printf "\n$(tput bold)$(tput setaf 1)ERROR ??: Unknown\n\n$(tput sgr0)"
printf "\n$(tput bold)$(tput setaf 1)ERROR ??: Unknown\n\n$(tput sgr0)"
;;
;;
@ -132,14 +132,14 @@ create_account() {
}
}
disable_account() {
disable_account() {
eval " $dbconnect -c \ "SELECT id,name,created FROM account WHERE enabled = true ORDER BY name;\" "
$dbconnect -c "SELECT id,name,created FROM account WHERE enabled = true ORDER BY name;"
read -p "Enter Account ID ('c' to cancel): " ID
read -p "Enter Account ID ('c' to cancel): " ID
([ "$ID" == "c" ] || [ "$ID" == "c" ]) && return
([ "$ID" == "c" ] || [ "$ID" == "c" ]) && return
read -p "$(tput bold)$(tput setaf 3)DISABLING$(tput sgr0) account #${ID}: $(get_name $ID bold). Are you sure? (y/N)" -n1 CONFIRM
read -p "$(tput bold)$(tput setaf 3)DISABLING$(tput sgr0) account #${ID}: $(get_name $ID bold). Are you sure? (y/N)" -n1 CONFIRM
case $CONFIRM in
case $CONFIRM in
[Yy])
[Yy])
printf "\n$(tput bold)$(tput setaf 3)Disabling account...\n\n$(tput sgr0)"
printf "\n$(tput bold)$(tput setaf 3)Disabling account...\n\n$(tput sgr0)"
eval " $dbconnect -c \ "UPDATE account SET enabled = false WHERE id = '${ID}';\" " &&
$dbconnect -c "UPDATE account SET enabled = false WHERE id = '${ID}';" &&
printf "\n$(tput bold)$(tput setaf 2)DONE!\n\n$(tput sgr0)" ||
printf "\n$(tput bold)$(tput setaf 2)DONE!\n\n$(tput sgr0)" ||
printf "\n$(tput bold)$(tput setaf 1)ERROR ??: Unknown\n\n$(tput sgr0)"
printf "\n$(tput bold)$(tput setaf 1)ERROR ??: Unknown\n\n$(tput sgr0)"
;;
;;
@ -152,14 +152,14 @@ disable_account() {
enable_account() {
enable_account() {
echo "DISABLED Accounts:"
echo "DISABLED Accounts:"
eval " $dbconnect -c \ "SELECT id,name,created FROM account WHERE enabled = false ORDER BY name;\" "
$dbconnect -c "SELECT id,name,created FROM account WHERE enabled = false ORDER BY name;"
read -p "Enter Account ID ('c' to cancel): " ID
read -p "Enter Account ID ('c' to cancel): " ID
([ "$ID" == "c" ] || [ "$ID" == "c" ]) && return
([ "$ID" == "c" ] || [ "$ID" == "c" ]) && return
read -p "$(tput bold)Enabling$(tput sgr0) account #${ID}: $(get_name $ID bold). Are you sure? (y/N)" -n1 CONFIRM
read -p "$(tput bold)Enabling$(tput sgr0) account #${ID}: $(get_name $ID bold). Are you sure? (y/N)" -n1 CONFIRM
case $CONFIRM in
case $CONFIRM in
[Yy])
[Yy])
printf "\n$(tput bold)$(tput setaf 3)Disabling account...\n\n$(tput sgr0)"
printf "\n$(tput bold)$(tput setaf 3)Disabling account...\n\n$(tput sgr0)"
eval " $dbconnect -c \ "UPDATE account SET enabled = true WHERE id = '${ID}';\" " &&
$dbconnect -c "UPDATE account SET enabled = true WHERE id = '${ID}';" &&
printf "\n$(tput bold)$(tput setaf 2)DONE!\n\n$(tput sgr0)" ||
printf "\n$(tput bold)$(tput setaf 2)DONE!\n\n$(tput sgr0)" ||
printf "\n$(tput bold)$(tput setaf 1)ERROR ??: Unknown\n\n$(tput sgr0)"
printf "\n$(tput bold)$(tput setaf 1)ERROR ??: Unknown\n\n$(tput sgr0)"
;;
;;
@ -171,7 +171,7 @@ enable_account() {
}
}
make_deposit() {
make_deposit() {
eval " $dbconnect -c \ "SELECT id,name FROM account WHERE enabled = true ORDER BY name;\" "
$dbconnect -c "SELECT id,name FROM account WHERE enabled = true ORDER BY name;"
read -p "Enter Account ID ('c' to cancel): " ID
read -p "Enter Account ID ('c' to cancel): " ID
([ "$ID" == "c" ] || [ "$ID" == "c" ]) && return
([ "$ID" == "c" ] || [ "$ID" == "c" ]) && return
read -p "Enter amount of gp to deposit: " amount
read -p "Enter amount of gp to deposit: " amount
@ -180,12 +180,12 @@ make_deposit() {
case $CONFIRM in
case $CONFIRM in
[Yy])
[Yy])
printf "\n$(tput bold)Depositing...\n\n$(tput sgr0)"
printf "\n$(tput bold)Depositing...\n\n$(tput sgr0)"
eval " $dbconnect -c \ "INSERT INTO transaction (account,deposit,timestamp) VALUES ('${ID}','${amount}','${tstamp}');\" "
$dbconnect -c "INSERT INTO transaction (account,deposit,timestamp) VALUES ('${ID}','${amount}','${tstamp}');"
eval " $dbconnect -c \ "UPDATE balance SET gold = gold + '${amount}' WHERE id = '${ID}';\" "
$dbconnect -c "UPDATE balance SET gold = gold + '${amount}' WHERE id = '${ID}';"
printf "\n$(tput bold)$(tput setaf 2)DONE!\n\n$(tput sgr0)" ||
printf "\n$(tput bold)$(tput setaf 2)DONE!\n\n$(tput sgr0)" ||
printf "\n$(tput bold)$(tput setaf 1)ERROR ??: Unknown\n\n$(tput sgr0)"
printf "\n$(tput bold)$(tput setaf 1)ERROR ??: Unknown\n\n$(tput sgr0)"
printf "\nNew balance:\n"
printf "\nNew balance:\n"
eval " $dbconnect -c \ "SELECT account.id,account.name,gold FROM balance INNER JOIN account ON account.id = balance.id where balance.id = ${ID};\" "
$dbconnect -c "SELECT account.id,account.name,gold FROM balance INNER JOIN account ON account.id = balance.id where balance.id = ${ID};"
;;
;;
*)
*)
printf "\n$(tput bold)$(tput setaf 1)ABORT\n\n$(tput sgr0)"
printf "\n$(tput bold)$(tput setaf 1)ABORT\n\n$(tput sgr0)"
@ -195,7 +195,7 @@ make_deposit() {
}
}
make_withdrawal() {
make_withdrawal() {
eval " $dbconnect -c \ "SELECT account.id,account.name,gold FROM balance INNER JOIN account ON account.id = balance.id WHERE account.enabled = true ORDER BY name;\" " #Show balances first
$dbconnect -c "SELECT account.id,account.name,gold FROM balance INNER JOIN account ON account.id = balance.id WHERE account.enabled = true ORDER BY name;" #Show balances first
read -p "Enter Account ID ('c' to cancel): " ID
read -p "Enter Account ID ('c' to cancel): " ID
([ "$ID" == "c" ] || [ "$ID" == "c" ]) && return
([ "$ID" == "c" ] || [ "$ID" == "c" ]) && return
read -p "Enter amount of gp to withdraw: " amount
read -p "Enter amount of gp to withdraw: " amount
@ -204,12 +204,12 @@ make_withdrawal() {
case $CONFIRM in
case $CONFIRM in
[Yy])
[Yy])
printf "\n$(tput bold)Withdrawing...\n\n$(tput sgr0)"
printf "\n$(tput bold)Withdrawing...\n\n$(tput sgr0)"
eval " $dbconnect -c \ "INSERT INTO transaction (account,withdrawal,timestamp) VALUES ('${ID}','${amount}','${tstamp}');\" "
$dbconnect -c "INSERT INTO transaction (account,withdrawal,timestamp) VALUES ('${ID}','${amount}','${tstamp}');"
eval " $dbconnect -c \ "UPDATE balance SET gold = gold - '${amount}' WHERE id = '${ID}';\" "
$dbconnect -c "UPDATE balance SET gold = gold - '${amount}' WHERE id = '${ID}';"
printf "\n$(tput bold)$(tput setaf 2)DONE!\n\n$(tput sgr0)" ||
printf "\n$(tput bold)$(tput setaf 2)DONE!\n\n$(tput sgr0)" ||
printf "\n$(tput bold)$(tput setaf 1)ERROR ??: Unknown\n\n$(tput sgr0)"
printf "\n$(tput bold)$(tput setaf 1)ERROR ??: Unknown\n\n$(tput sgr0)"
printf "\nNew balance:\n"
printf "\nNew balance:\n"
eval " $dbconnect -c \ "SELECT account.id,account.name,gold FROM balance INNER JOIN account ON account.id = balance.id where balance.id = ${ID};\" "
$dbconnect -c "SELECT account.id,account.name,gold FROM balance INNER JOIN account ON account.id = balance.id where balance.id = ${ID};"
;;
;;
*)
*)
printf "\n$(tput bold)$(tput setaf 1)ABORT\n\n$(tput sgr0)"
printf "\n$(tput bold)$(tput setaf 1)ABORT\n\n$(tput sgr0)"
@ -219,7 +219,7 @@ make_withdrawal() {
}
}
bank_transfer() {
bank_transfer() {
eval " $dbconnect -c \ "SELECT account.id,account.name,gold FROM balance INNER JOIN account ON account.id = balance.id WHERE account.enabled = true ORDER BY name;\" " #Show balances first
$dbconnect -c "SELECT account.id,account.name,gold FROM balance INNER JOIN account ON account.id = balance.id WHERE account.enabled = true ORDER BY name;" #Show balances first
read -p "Enter Account ID to transfer $(tput bold)FROM$(tput sgr0): " FROM
read -p "Enter Account ID to transfer $(tput bold)FROM$(tput sgr0): " FROM
read -p "Enter Account ID to transfer $(tput bold)TO$(tput sgr0): " TO
read -p "Enter Account ID to transfer $(tput bold)TO$(tput sgr0): " TO
read -p "Enter amount of gp to transfer: " amount
read -p "Enter amount of gp to transfer: " amount
@ -228,15 +228,15 @@ bank_transfer() {
case $CONFIRM in
case $CONFIRM in
[Yy])
[Yy])
printf "\n$(tput bold)Transferring...\n\n$(tput sgr0)"
printf "\n$(tput bold)Transferring...\n\n$(tput sgr0)"
eval " $dbconnect -c \ "INSERT INTO transaction (account,withdrawal,timestamp) VALUES ('${FROM}','${amount}','${tstamp}');\" "
$dbconnect -c "INSERT INTO transaction (account,withdrawal,timestamp) VALUES ('${FROM}','${amount}','${tstamp}');"
eval " $dbconnect -c \ "UPDATE balance SET gold = gold - '${amount}' WHERE id = '${FROM}';\" "
$dbconnect -c "UPDATE balance SET gold = gold - '${amount}' WHERE id = '${FROM}';"
eval " $dbconnect -c \ "INSERT INTO transaction (account,deposit,timestamp) VALUES ('${TO}','${amount}','${tstamp}');\" "
$dbconnect -c "INSERT INTO transaction (account,deposit,timestamp) VALUES ('${TO}','${amount}','${tstamp}');"
eval " $dbconnect -c \ "UPDATE balance SET gold = gold + '${amount}' WHERE id = '${TO}';\" "
$dbconnect -c "UPDATE balance SET gold = gold + '${amount}' WHERE id = '${TO}';"
eval " $dbconnect -c \ "INSERT INTO transfer (from_id,to_id,gold,timestamp) VALUES ('${FROM}','${TO}','${amount}','${tstamp}');\" "
$dbconnect -c "INSERT INTO transfer (from_id,to_id,gold,timestamp) VALUES ('${FROM}','${TO}','${amount}','${tstamp}');"
printf "\n$(tput bold)$(tput setaf 2)DONE!\n\n$(tput sgr0)" ||
printf "\n$(tput bold)$(tput setaf 2)DONE!\n\n$(tput sgr0)" ||
printf "\n$(tput bold)$(tput setaf 1)ERROR ??: Unknown\n\n$(tput sgr0)"
printf "\n$(tput bold)$(tput setaf 1)ERROR ??: Unknown\n\n$(tput sgr0)"
printf "\nNew balances:\n"
printf "\nNew balances:\n"
eval " $dbconnect -c \ "SELECT account.id,account.name,gold FROM balance INNER JOIN account ON account.id = balance.id WHERE balance.id = ${FROM} OR balance.id = ${TO};\" "
$dbconnect -c "SELECT account.id,account.name,gold FROM balance INNER JOIN account ON account.id = balance.id WHERE balance.id = ${FROM} OR balance.id = ${TO};"
;;
;;
*)
*)
printf "\n$(tput bold)$(tput setaf 1)ABORT\n\n$(tput sgr0)"
printf "\n$(tput bold)$(tput setaf 1)ABORT\n\n$(tput sgr0)"
@ -246,25 +246,25 @@ bank_transfer() {
}
}
show_balance() {
show_balance() {
eval " $dbconnect -c \ "SELECT account.id,account.name,gold FROM balance INNER JOIN account ON account.id = balance.id WHERE account.enabled = true ORDER BY name;\" "
$dbconnect -c "SELECT account.id,account.name,gold FROM balance INNER JOIN account ON account.id = balance.id WHERE account.enabled = true ORDER BY name;"
hold_menu
hold_menu
}
}
show_transactions_all() {
show_transactions_all() {
eval " $dbconnect -c \ "SELECT transaction.id,account.name,withdrawal,deposit,timestamp FROM transaction INNER JOIN account ON account.id = transaction.account ORDER BY timestamp;\" "
$dbconnect -c "SELECT transaction.id,account.name,withdrawal,deposit,timestamp FROM transaction INNER JOIN account ON account.id = transaction.account ORDER BY timestamp;"
hold_menu
hold_menu
}
}
show_transactions() {
show_transactions() {
read -p "Enter search term (e.g. character name): " name
read -p "Enter search term (e.g. character name): " name
echo
echo
eval " $dbconnect -c \ "SELECT transaction.id,account.name,withdrawal,deposit,timestamp FROM transaction INNER JOIN account ON account.id = transaction.account ORDER BY timestamp;\" " | grep -iE "$name|timestamp|------"
$dbconnect -c "SELECT transaction.id,account.name,withdrawal,deposit,timestamp FROM transaction INNER JOIN account ON account.id = transaction.account ORDER BY timestamp;" | grep -iE "$name|timestamp|------"
echo
echo
hold_menu
hold_menu
}
}
show_transfers() {
show_transfers() {
eval " $dbconnect -c \ "SELECT transfer.id,f.name AS from,t.name AS to,gold,timestamp FROM transfer LEFT JOIN account AS f ON f.id = transfer.from_id LEFT JOIN account AS t ON t.id = transfer.to_id ORDER BY timestamp;\" "
$dbconnect -c "SELECT transfer.id,f.name AS from,t.name AS to,gold,timestamp FROM transfer LEFT JOIN account AS f ON f.id = transfer.from_id LEFT JOIN account AS t ON t.id = transfer.to_id ORDER BY timestamp;"
hold_menu
hold_menu
}
}