diff --git a/bank b/bank index 5580aad..221e42d 100755 --- a/bank +++ b/bank @@ -101,7 +101,7 @@ dbconnect="psql -h ${DB_HOST} -p ${DB_PORT} -U ${DB_USER} -d ${DB_NAME}" get_name() { # Arg1 == Account ID # 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 if [ "$2" == "bold" ]; then @@ -119,8 +119,8 @@ create_account() { case $CONFIRM in [Yy]) printf "\n$(tput bold)Creating account...\n\n$(tput sgr0)" - eval "$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 account (name,created) VALUES ('${name}','${tstamp}');" && + $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 1)ERROR ??: Unknown\n\n$(tput sgr0)" ;; @@ -132,14 +132,14 @@ create_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 ([ "$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 case $CONFIRM in [Yy]) 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 1)ERROR ??: Unknown\n\n$(tput sgr0)" ;; @@ -152,14 +152,14 @@ disable_account() { enable_account() { 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 ([ "$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 case $CONFIRM in [Yy]) 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 1)ERROR ??: Unknown\n\n$(tput sgr0)" ;; @@ -171,7 +171,7 @@ enable_account() { } 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 ([ "$ID" == "c" ] || [ "$ID" == "c" ]) && return read -p "Enter amount of gp to deposit: " amount @@ -180,12 +180,12 @@ make_deposit() { case $CONFIRM in [Yy]) printf "\n$(tput bold)Depositing...\n\n$(tput sgr0)" - eval "$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 "INSERT INTO transaction (account,deposit,timestamp) VALUES ('${ID}','${amount}','${tstamp}');" + $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 1)ERROR ??: Unknown\n\n$(tput sgr0)" 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)" @@ -195,7 +195,7 @@ make_deposit() { } 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 ([ "$ID" == "c" ] || [ "$ID" == "c" ]) && return read -p "Enter amount of gp to withdraw: " amount @@ -204,12 +204,12 @@ make_withdrawal() { case $CONFIRM in [Yy]) printf "\n$(tput bold)Withdrawing...\n\n$(tput sgr0)" - eval "$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 "INSERT INTO transaction (account,withdrawal,timestamp) VALUES ('${ID}','${amount}','${tstamp}');" + $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 1)ERROR ??: Unknown\n\n$(tput sgr0)" 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)" @@ -219,7 +219,7 @@ make_withdrawal() { } 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)TO$(tput sgr0): " TO read -p "Enter amount of gp to transfer: " amount @@ -228,15 +228,15 @@ bank_transfer() { case $CONFIRM in [Yy]) printf "\n$(tput bold)Transferring...\n\n$(tput sgr0)" - eval "$dbconnect -c \"INSERT INTO transaction (account,withdrawal,timestamp) VALUES ('${FROM}','${amount}','${tstamp}');\"" - eval "$dbconnect -c \"UPDATE balance SET gold = gold - '${amount}' WHERE id = '${FROM}';\"" - eval "$dbconnect -c \"INSERT INTO transaction (account,deposit,timestamp) VALUES ('${TO}','${amount}','${tstamp}');\"" - eval "$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 transaction (account,withdrawal,timestamp) VALUES ('${FROM}','${amount}','${tstamp}');" + $dbconnect -c "UPDATE balance SET gold = gold - '${amount}' WHERE id = '${FROM}';" + $dbconnect -c "INSERT INTO transaction (account,deposit,timestamp) VALUES ('${TO}','${amount}','${tstamp}');" + $dbconnect -c "UPDATE balance SET gold = gold + '${amount}' WHERE id = '${TO}';" + $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 1)ERROR ??: Unknown\n\n$(tput sgr0)" 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)" @@ -246,25 +246,25 @@ bank_transfer() { } 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 } 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 } show_transactions() { read -p "Enter search term (e.g. character name): " name 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 hold_menu } 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 }