#!/bin/bash

ECHO=/bin/echo
GREP=/bin/grep
JQ=/usr/bin/jq
SED=/bin/sed
BASENAME=/usr/bin/basename
DIRNAME=/usr/bin/dirname
MAWK=/usr/bin/mawk
HEAD=/usr/bin/head

BITCOIN_CLI=/usr/lib/bitcoin-cash-node-init/bitcoin-cash-node-cli

NAME_CALLED=`${BASENAME} $0`

STATIC_DEFAULT_CONF=/usr/lib/bitcoin-cash-node-init/default/bitcoin-cash-node-init

if [ -f ${STATIC_DEFAULT_CONF} ]
then
    . ${STATIC_DEFAULT_CONF}
fi

CONFIG_FILE=${SERVER_CONF}
BASEDIR=`${DIRNAME} ${CONFIG_FILE}`
COOKIEFILE=`${GREP} -r rpccookiefile ${BASEDIR} | ${GREP} main | ${MAWK} -F "=" '{print $2;}' | ${HEAD} -n 1`
RPCHOST=`${GREP} -r rpcbind ${BASEDIR} | ${GREP} main | ${MAWK} -F "=" '{print $2;}' | ${HEAD} -n 1`
RPCPORT=`${GREP} -r rpcport ${BASEDIR} | ${GREP} main | ${MAWK} -F "=" '{print $2;}' | ${HEAD} -n 1`
CHAIN=main

if [ "${NAME_CALLED}" = "bitcoin-cash-node-cli-testnet" ]
then
    CONFIG_FILE=${TESTNET_SERVER_CONF}
    BASEDIR=`${DIRNAME} ${CONFIG_FILE}`
    COOKIEFILE=`${GREP} -r rpccookiefile ${BASEDIR} | ${GREP} testnet | ${MAWK} -F "=" '{print $2;}' | ${HEAD} -n 1`
    RPCHOST=`${GREP} -r rpcbind ${BASEDIR} | ${GREP} testnet | ${MAWK} -F "=" '{print $2;}' | ${HEAD} -n 1`
    RPCPORT=`${GREP} -r rpcport ${BASEDIR} | ${GREP} testnet | ${MAWK} -F "=" '{print $2;}' | ${HEAD} -n 1`
    CHAIN=test
fi

if [ -n "${COOKIEFILE}" ]
then
    if [ -f ${COOKIEFILE} ]
    then
	BITCOIN_CLI="${BITCOIN_CLI} -rpccookiefile=${COOKIEFILE}"
    fi
fi

if [ -n "${RPCHOST}" ]
then
    BITCOIN_CLI="${BITCOIN_CLI} -rpcconnect=${RPCHOST}"
fi

if [ -n "${RPCPORT}" ]
then
    BITCOIN_CLI="${BITCOIN_CLI} -rpcport=${RPCPORT}"
fi

##BITCOIN_CLI="${BITCOIN_CLI} -chain=${CHAIN}"
BITCOIN_CLI="${BITCOIN_CLI}"

PARMS_IN="$@"

WALLET_PARM="-rpcwallet=wallet.dat"

if [ "${PARMS_IN}" = "getwalletsinfo" ]
then
    WALLETS=`${BITCOIN_CLI} -conf=${CONFIG_FILE} listwallets | ${JQ} -M '.[]' | ${SED} 's/\"//g'`
    if [ "$?" = "0" ]
    then
	for wallet in ${WALLETS}
	do
	    ${BITCOIN_CLI} -rpcwallet="${wallet}" -conf=${CONFIG_FILE} getwalletinfo
	done
    fi
elif ${ECHO} "${PARMS_IN}" | ${GREP} "\-rpcwallet=" 1>/dev/null 2>/dev/null
then
    ${BITCOIN_CLI} "$@"
else
    BITCOIN_CLI="${BITCOIN_CLI} ${WALLET_PARM}"
    ${BITCOIN_CLI} "$@"
fi
