You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
685 lines
19 KiB
685 lines
19 KiB
#!/bin/bash
|
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
|
|
|
|
# Source a file
|
|
source_file() {
|
|
if [ -f $1 ]; then
|
|
source $1
|
|
elif [ -f "$1.tpl" ]; then
|
|
source "$1.tpl"
|
|
else
|
|
echo "Unable to find file $1"
|
|
fi
|
|
}
|
|
|
|
# Source config files
|
|
source_file "$DIR/conf/docker-whirlpool.conf"
|
|
source_file "$DIR/conf/docker-indexer.conf"
|
|
source_file "$DIR/conf/docker-bitcoind.conf"
|
|
source_file "$DIR/conf/docker-explorer.conf"
|
|
source_file "$DIR/conf/docker-common.conf"
|
|
source_file "$DIR/.env"
|
|
|
|
# Export some variables for compose
|
|
export BITCOIND_RPC_EXTERNAL_IP
|
|
|
|
# Select YAML files
|
|
select_yaml_files() {
|
|
yamlFiles="-f $DIR/docker-compose.yaml"
|
|
|
|
if [ "$BITCOIND_INSTALL" == "on" ]; then
|
|
yamlFiles="$yamlFiles -f $DIR/overrides/bitcoind.install.yaml"
|
|
|
|
if [ "$BITCOIND_RPC_EXTERNAL" == "on" ]; then
|
|
yamlFiles="$yamlFiles -f $DIR/overrides/bitcoind.rpc.expose.yaml"
|
|
fi
|
|
fi
|
|
|
|
if [ "$EXPLORER_INSTALL" == "on" ]; then
|
|
yamlFiles="$yamlFiles -f $DIR/overrides/explorer.install.yaml"
|
|
fi
|
|
|
|
if [ "$INDEXER_INSTALL" == "on" ]; then
|
|
yamlFiles="$yamlFiles -f $DIR/overrides/indexer.install.yaml"
|
|
fi
|
|
|
|
if [ "$WHIRLPOOL_INSTALL" == "on" ]; then
|
|
yamlFiles="$yamlFiles -f $DIR/overrides/whirlpool.install.yaml"
|
|
fi
|
|
|
|
# Return yamlFiles
|
|
echo "$yamlFiles"
|
|
}
|
|
|
|
# Docker up
|
|
docker_up() {
|
|
yamlFiles=$(select_yaml_files)
|
|
eval "docker-compose $yamlFiles up $@ -d"
|
|
}
|
|
|
|
# Start
|
|
start() {
|
|
# Check if dojo is running (check the db container)
|
|
isRunning=$(docker inspect --format="{{.State.Running}}" db 2> /dev/null)
|
|
|
|
if [ $? -eq 1 ] || [ "$isRunning" == "false" ]; then
|
|
echo "Starting Dojo. Please wait."
|
|
docker_up --remove-orphans
|
|
else
|
|
echo "Dojo is already running."
|
|
fi
|
|
}
|
|
|
|
# Stop
|
|
stop() {
|
|
echo "Preparing shutdown of Dojo. Please wait."
|
|
# Check if dojo is running (check the db container)
|
|
isRunning=$(docker inspect --format="{{.State.Running}}" db 2> /dev/null)
|
|
if [ $? -eq 1 ] || [ "$isRunning" == "false" ]; then
|
|
echo "Dojo is already stopped."
|
|
exit
|
|
fi
|
|
# Shutdown the bitcoin daemon
|
|
if [ "$BITCOIND_INSTALL" == "on" ]; then
|
|
# Renewal of bitcoind onion address
|
|
if [ "$BITCOIND_LISTEN_MODE" == "on" ]; then
|
|
if [ "$BITCOIND_EPHEMERAL_HS" = "on" ]; then
|
|
$( docker exec -it tor rm -rf /var/lib/tor/hsv2bitcoind ) &> /dev/null
|
|
$( docker exec -it tor rm -rf /var/lib/tor/hsv3bitcoind ) &> /dev/null
|
|
fi
|
|
fi
|
|
# Stop the bitcoin daemon
|
|
$( docker exec -it bitcoind bitcoin-cli \
|
|
-rpcconnect=bitcoind \
|
|
--rpcport=28256 \
|
|
--rpcuser="$BITCOIND_RPC_USER" \
|
|
--rpcpassword="$BITCOIND_RPC_PASSWORD" \
|
|
stop ) &> /dev/null
|
|
# Check if the bitcoin daemon is still up
|
|
# wait 3mn max
|
|
i="0"
|
|
nbIters=$(( $BITCOIND_SHUTDOWN_DELAY / 10 ))
|
|
while [ $i -lt $nbIters ]
|
|
do
|
|
echo "Waiting for shutdown of Bitcoin server."
|
|
# Check if bitcoind rpc api is responding
|
|
$( timeout -k 12 10 docker exec -it bitcoind bitcoin-cli \
|
|
-rpcconnect=bitcoind \
|
|
--rpcport=28256 \
|
|
--rpcuser="$BITCOIND_RPC_USER" \
|
|
--rpcpassword="$BITCOIND_RPC_PASSWORD" \
|
|
getblockchaininfo &> /dev/null ) &> /dev/null
|
|
# rpc api is down
|
|
if [[ $? > 0 ]]; then
|
|
echo "Bitcoin server stopped."
|
|
break
|
|
fi
|
|
i=$[$i+1]
|
|
done
|
|
# Bitcoin daemon is still up
|
|
# => force close
|
|
if [ $i -eq $nbIters ]; then
|
|
echo "Force shutdown of Bitcoin server."
|
|
fi
|
|
fi
|
|
# Stop docker containers
|
|
yamlFiles=$(select_yaml_files)
|
|
eval "docker-compose $yamlFiles stop"
|
|
}
|
|
|
|
# Restart dojo
|
|
restart() {
|
|
stop
|
|
docker_up
|
|
}
|
|
|
|
# Install
|
|
install() {
|
|
source "$DIR/install/install-scripts.sh"
|
|
|
|
launchInstall=1
|
|
auto=1
|
|
noLog=1
|
|
|
|
# Extract install options from arguments
|
|
if [ $# -gt 0 ]; then
|
|
for option in $@
|
|
do
|
|
case "$option" in
|
|
--auto ) auto=0 ;;
|
|
--nolog ) noLog=0 ;;
|
|
* ) break ;;
|
|
esac
|
|
done
|
|
fi
|
|
|
|
# Confirmation
|
|
if [ $auto -eq 0 ]; then
|
|
launchInstall=0
|
|
else
|
|
get_confirmation
|
|
launchInstall=$?
|
|
fi
|
|
|
|
# Detection of past install
|
|
if [ $launchInstall -eq 0 ]; then
|
|
pastInstallsfound=$(docker image ls | grep samouraiwallet/dojo-db | wc -l)
|
|
if [ $pastInstallsfound -ne 0 ]; then
|
|
# Past installation found. Ask confirmation for reinstall
|
|
echo -e "\nWarning: Found traces of a previous installation of Dojo on this machine."
|
|
echo "A new installation requires to remove these elements first."
|
|
if [ $auto -eq 0 ]; then
|
|
launchReinstall=0
|
|
else
|
|
get_confirmation_reinstall
|
|
launchReinstall=$?
|
|
fi
|
|
|
|
if [ $launchReinstall -eq 0 ]; then
|
|
echo ""
|
|
# Uninstall
|
|
if [ $auto -eq 0 ]; then
|
|
uninstall --auto
|
|
launchReinstall=$?
|
|
else
|
|
uninstall
|
|
launchReinstall=$?
|
|
fi
|
|
fi
|
|
|
|
if [ $launchReinstall -eq 1 ]; then
|
|
launchInstall=1
|
|
echo -e "\nInstallation was cancelled."
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# Installation
|
|
if [ $launchInstall -eq 0 ]; then
|
|
# Initialize the config files
|
|
init_config_files
|
|
# Build and start Dojo
|
|
docker_up --remove-orphans
|
|
buildResult=$?
|
|
if [ $buildResult -eq 0 ]; then
|
|
# Display the logs
|
|
if [ $noLog -eq 1 ]; then
|
|
logs "" 0
|
|
fi
|
|
else
|
|
# Return an error
|
|
echo -e "\nInstallation of Dojo failed. See the above error message."
|
|
exit $buildResult
|
|
fi
|
|
else
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Delete everything
|
|
uninstall() {
|
|
source "$DIR/install/uninstall-scripts.sh"
|
|
|
|
auto=1
|
|
|
|
# Extract install options from arguments
|
|
if [ $# -gt 0 ]; then
|
|
for option in $@
|
|
do
|
|
case "$option" in
|
|
--auto ) auto=0 ;;
|
|
* ) break ;;
|
|
esac
|
|
done
|
|
fi
|
|
|
|
# Confirmation
|
|
if [ $auto -eq 0 ]; then
|
|
launchUninstall=0
|
|
else
|
|
get_confirmation
|
|
launchUninstall=$?
|
|
fi
|
|
|
|
if [ $launchUninstall -eq 0 ]; then
|
|
yamlFiles=$(select_yaml_files)
|
|
eval "docker-compose $yamlFiles down --rmi all"
|
|
docker volume prune -f
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Clean-up (remove old docker images)
|
|
del_images_for() {
|
|
# $1: image name
|
|
# $2: most recent version of the image (do not delete this one)
|
|
docker image ls | grep "$1" | sed "s/ \+/,/g" | cut -d"," -f2 | while read -r version ; do
|
|
if [ "$2" != "$version" ]; then
|
|
docker image rm -f "$1:$version"
|
|
fi
|
|
done
|
|
}
|
|
|
|
clean() {
|
|
del_images_for samouraiwallet/dojo-db "$DOJO_DB_VERSION_TAG"
|
|
del_images_for samouraiwallet/dojo-bitcoind "$DOJO_BITCOIND_VERSION_TAG"
|
|
del_images_for samouraiwallet/dojo-explorer "$DOJO_EXPLORER_VERSION_TAG"
|
|
del_images_for samouraiwallet/dojo-nodejs "$DOJO_NODEJS_VERSION_TAG"
|
|
del_images_for samouraiwallet/dojo-nginx "$DOJO_NGINX_VERSION_TAG"
|
|
del_images_for samouraiwallet/dojo-tor "$DOJO_TOR_VERSION_TAG"
|
|
del_images_for samouraiwallet/dojo-indexer "$DOJO_INDEXER_VERSION_TAG"
|
|
del_images_for samouraiwallet/dojo-whirlpool "$DOJO_WHIRLPOOL_VERSION_TAG"
|
|
docker image prune -f
|
|
}
|
|
|
|
# Upgrade
|
|
upgrade() {
|
|
source "$DIR/install/upgrade-scripts.sh"
|
|
|
|
launchUpgrade=1
|
|
auto=1
|
|
noLog=1
|
|
noCache=1
|
|
|
|
# Extract upgrade options from arguments
|
|
if [ $# -gt 0 ]; then
|
|
for option in $@
|
|
do
|
|
case "$option" in
|
|
--auto ) auto=0 ;;
|
|
--nolog ) noLog=0 ;;
|
|
--nocache ) noCache=0 ;;
|
|
* ) break ;;
|
|
esac
|
|
done
|
|
fi
|
|
|
|
# Confirmation
|
|
if [ $auto -eq 0 ]; then
|
|
launchUpgrade=0
|
|
else
|
|
get_confirmation
|
|
launchUpgrade=$?
|
|
fi
|
|
|
|
# Upgrade Dojo
|
|
if [ $launchUpgrade -eq 0 ]; then
|
|
# Select yaml files
|
|
yamlFiles=$(select_yaml_files)
|
|
# Check if dojo is running (check the db container)
|
|
isRunning=$(docker inspect --format="{{.State.Running}}" db 2> /dev/null)
|
|
if [ $? -eq 1 ] || [ "$isRunning" == "false" ]; then
|
|
echo -e "\nChecked that Dojo isn't running."
|
|
else
|
|
echo " "
|
|
stop
|
|
fi
|
|
# Update config files
|
|
echo -e "\nPreparing the upgrade of Dojo.\n"
|
|
update_config_files
|
|
# Cleanup
|
|
cleanup
|
|
# Load env vars for compose files
|
|
source_file "$DIR/conf/docker-bitcoind.conf"
|
|
export BITCOIND_RPC_EXTERNAL_IP
|
|
# Rebuild the images (with or without cache)
|
|
if [ $noCache -eq 0 ]; then
|
|
echo -e "\nDeleting Dojo containers and images."
|
|
eval "docker-compose $yamlFiles down --rmi all"
|
|
fi
|
|
echo -e "\nStarting the upgrade of Dojo.\n"
|
|
docker_up --build --force-recreate --remove-orphans
|
|
buildResult=$?
|
|
if [ $buildResult -eq 0 ]; then
|
|
# Post start clean-up
|
|
clean
|
|
post_start_cleanup
|
|
# Update the database
|
|
update_dojo_db
|
|
# Display the logs
|
|
if [ $noLog -eq 1 ]; then
|
|
logs "" 0
|
|
fi
|
|
else
|
|
# Return an error
|
|
echo -e "\nUpgrade of Dojo failed. See the above error message."
|
|
exit $buildResult
|
|
fi
|
|
else
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Display the onion addresses
|
|
onion() {
|
|
version=3
|
|
|
|
# Extract version arguments
|
|
if [ $# -gt 0 ]; then
|
|
for option in $@
|
|
do
|
|
case "$option" in
|
|
v2 ) version=2 ;;
|
|
v3 ) version=3 ;;
|
|
* ) break ;;
|
|
esac
|
|
done
|
|
fi
|
|
|
|
echo " "
|
|
echo "WARNING: Do not share these onion addresses with anyone!"
|
|
echo " To allow another person to use this Dojo with their Samourai Wallet,"
|
|
echo " you should share the QRCodes provided by the Maintenance Tool."
|
|
echo " "
|
|
|
|
if [ $version -eq 3 ]; then
|
|
# V3 onion addresses
|
|
V3_ADDR=$( docker exec -it tor cat /var/lib/tor/hsv3dojo/hostname )
|
|
echo "Dojo API and Maintenance Tool = $V3_ADDR"
|
|
echo " "
|
|
|
|
if [ "$EXPLORER_INSTALL" == "on" ]; then
|
|
V3_ADDR_EXPLORER=$( docker exec -it tor cat /var/lib/tor/hsv3explorer/hostname )
|
|
echo "Block Explorer = $V3_ADDR_EXPLORER"
|
|
echo " "
|
|
fi
|
|
|
|
if [ "$WHIRLPOOL_INSTALL" == "on" ]; then
|
|
V3_ADDR_WHIRLPOOL=$( docker exec -it tor cat /var/lib/tor/hsv3whirlpool/hostname )
|
|
echo "Your private Whirlpool client (do not share) = $V3_ADDR_WHIRLPOOL"
|
|
echo " "
|
|
fi
|
|
|
|
if [ "$BITCOIND_INSTALL" == "on" ]; then
|
|
if [ "$BITCOIND_LISTEN_MODE" == "on" ]; then
|
|
V3_ADDR_BTCD=$( docker exec -it tor cat /var/lib/tor/hsv3bitcoind/hostname )
|
|
echo "Your local bitcoind (do not share) = $V3_ADDR_BTCD"
|
|
echo " "
|
|
fi
|
|
fi
|
|
|
|
else
|
|
# v2 onion addresses
|
|
V2_ADDR=$( docker exec -it tor cat /var/lib/tor/hsv2dojo/hostname )
|
|
echo "Dojo API and Maintenance Tool = $V2_ADDR"
|
|
echo " "
|
|
|
|
if [ "$EXPLORER_INSTALL" == "on" ]; then
|
|
V2_ADDR_EXPLORER=$( docker exec -it tor cat /var/lib/tor/hsv2explorer/hostname )
|
|
echo "Block Explorer = $V2_ADDR_EXPLORER"
|
|
echo " "
|
|
fi
|
|
|
|
if [ "$WHIRLPOOL_INSTALL" == "on" ]; then
|
|
V2_ADDR_WHIRLPOOL=$( docker exec -it tor cat /var/lib/tor/hsv2whirlpool/hostname )
|
|
echo "Your private Whirlpool client (do not share) = $V2_ADDR_WHIRLPOOL"
|
|
echo " "
|
|
fi
|
|
|
|
if [ "$BITCOIND_INSTALL" == "on" ]; then
|
|
if [ "$BITCOIND_LISTEN_MODE" == "on" ]; then
|
|
V2_ADDR_BTCD=$( docker exec -it tor cat /var/lib/tor/hsv2bitcoind/hostname )
|
|
echo "Your local bitcoind (do not share) = $V2_ADDR_BTCD"
|
|
echo " "
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Display the version of this dojo
|
|
version() {
|
|
echo "Dojo v$DOJO_VERSION_TAG"
|
|
}
|
|
|
|
# Interact with whirlpool-cli
|
|
whirlpool() {
|
|
if [ "$WHIRLPOOL_INSTALL" == "off" ]; then
|
|
echo -e "Command not supported for your setup.\nCause: Your Dojo is not running a whirlpool client"
|
|
fi
|
|
|
|
case $1 in
|
|
apikey )
|
|
API_KEY=$( docker exec -it whirlpool cat /home/whirlpool/.whirlpool-cli/whirlpool-cli-config.properties | grep cli.apiKey= | cut -c 12-)
|
|
echo "$API_KEY"
|
|
;;
|
|
reset )
|
|
eval "docker exec -it whirlpool rm -f /home/whirlpool/.whirlpool-cli/*.json"
|
|
eval "docker exec -it whirlpool rm -f /home/whirlpool/.whirlpool-cli/whirlpool-cli-config.properties"
|
|
yamlFiles=$(select_yaml_files)
|
|
eval "docker-compose $yamlFiles restart whirlpool"
|
|
;;
|
|
* )
|
|
echo -e "Unkonwn action for the whirlpool command"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# Display logs
|
|
display_logs() {
|
|
yamlFiles=$(select_yaml_files)
|
|
if [ $2 -eq 0 ]; then
|
|
docker-compose $yamlFiles logs --tail=50 --follow $1
|
|
else
|
|
docker-compose $yamlFiles logs --tail=$2 $1
|
|
fi
|
|
}
|
|
|
|
logs() {
|
|
source_file "$DIR/conf/docker-bitcoind.conf"
|
|
source_file "$DIR/conf/docker-indexer.conf"
|
|
source_file "$DIR/conf/docker-explorer.conf"
|
|
source_file "$DIR/conf/docker-whirlpool.conf"
|
|
source_file "$DIR/conf/docker-common.conf"
|
|
|
|
case $1 in
|
|
db | tor | nginx | node )
|
|
display_logs $1 $2
|
|
;;
|
|
bitcoind )
|
|
if [ "$BITCOIND_INSTALL" == "on" ]; then
|
|
display_logs $1 $2
|
|
else
|
|
echo -e "Command not supported for your setup.\nCause: Your Dojo is using an external bitcoind"
|
|
fi
|
|
;;
|
|
indexer )
|
|
if [ "$INDEXER_INSTALL" == "on" ]; then
|
|
display_logs $1 $2
|
|
else
|
|
echo -e "Command not supported for your setup.\nCause: Your Dojo is not running the internal indexer"
|
|
fi
|
|
;;
|
|
explorer )
|
|
if [ "$EXPLORER_INSTALL" == "on" ]; then
|
|
display_logs $1 $2
|
|
else
|
|
echo -e "Command not supported for your setup.\nCause: Your Dojo is not running the internal block explorer"
|
|
fi
|
|
;;
|
|
whirlpool )
|
|
if [ "$WHIRLPOOL_INSTALL" == "on" ]; then
|
|
display_logs $1 $2
|
|
else
|
|
echo -e "Command not supported for your setup.\nCause: Your Dojo is not running a whirlpool client"
|
|
fi
|
|
;;
|
|
* )
|
|
services="nginx node tor db"
|
|
if [ "$BITCOIND_INSTALL" == "on" ]; then
|
|
services="$services bitcoind"
|
|
fi
|
|
if [ "$EXPLORER_INSTALL" == "on" ]; then
|
|
services="$services explorer"
|
|
fi
|
|
if [ "$INDEXER_INSTALL" == "on" ]; then
|
|
services="$services indexer"
|
|
fi
|
|
if [ "$WHIRLPOOL_INSTALL" == "on" ]; then
|
|
services="$services whirlpool"
|
|
fi
|
|
display_logs "$services" $2
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# Display the help
|
|
help() {
|
|
echo "Usage: dojo.sh command [module] [options]"
|
|
echo "Interact with your dojo."
|
|
echo " "
|
|
echo "Available commands:"
|
|
echo " "
|
|
echo " help Display this help message."
|
|
echo " "
|
|
echo " bitcoin-cli Launch a bitcoin-cli console allowing to interact with your full node through its RPC API."
|
|
echo " "
|
|
echo " clean Free disk space by deleting docker dangling images and images of previous versions."
|
|
echo " "
|
|
echo " install Install your dojo."
|
|
echo " "
|
|
echo " Available options:"
|
|
echo " --nolog : do not display the logs after Dojo has been launched."
|
|
echo " "
|
|
echo " logs [module] [options] Display the logs of your dojo."
|
|
echo " By default, the command displays the live logs. Use CTRL+C to stop the logs."
|
|
echo " Use the -n option to display past logs."
|
|
echo " "
|
|
echo " Available modules:"
|
|
echo " dojo.sh logs : display the logs of all the Docker containers"
|
|
echo " dojo.sh logs bitcoind : display the logs of bitcoind"
|
|
echo " dojo.sh logs db : display the logs of the MySQL database"
|
|
echo " dojo.sh logs tor : display the logs of tor"
|
|
echo " dojo.sh logs nginx : display the logs of nginx"
|
|
echo " dojo.sh logs indexer : display the logs of the internal indexer"
|
|
echo " dojo.sh logs node : display the logs of NodeJS modules (API, Tracker, PushTx API, Orchestrator)"
|
|
echo " dojo.sh logs explorer : display the logs of the Explorer"
|
|
echo " dojo.sh logs whirlpool : display the logs of the Whirlpool client"
|
|
echo " "
|
|
echo " Available options:"
|
|
echo " -n [VALUE] : display the last VALUE lines"
|
|
echo " "
|
|
echo " onion [version] Display the Tor onion addresses allowing your wallet to access your dojo."
|
|
echo " "
|
|
echo " Available versions:"
|
|
echo " v2: display Tor v2 onion addresses"
|
|
echo " v3 (default): display Tor v3 onion addresses"
|
|
echo " "
|
|
echo " restart Restart your dojo."
|
|
echo " "
|
|
echo " start Start your dojo."
|
|
echo " "
|
|
echo " stop Stop your dojo."
|
|
echo " "
|
|
echo " uninstall Delete your dojo. Be careful! This command will also remove all data."
|
|
echo " "
|
|
echo " upgrade [options] Upgrade your dojo."
|
|
echo " "
|
|
echo " Available options:"
|
|
echo " --nolog : do not display the logs after Dojo has been restarted."
|
|
echo " --nocache : rebuild the docker containers without reusing the cached layers."
|
|
echo " "
|
|
echo " version Display the version of dojo"
|
|
echo " "
|
|
echo " whirlpool [action] Interact with the internal whirlpool-cli mdule."
|
|
echo " "
|
|
echo " Available actions:"
|
|
echo " apikey : display the API key generated by whirlpool-cli."
|
|
echo " reset : reset the whirlpool-cli instance (delete configuration file)."
|
|
}
|
|
|
|
|
|
#
|
|
# Parse options to the dojo command
|
|
#
|
|
while getopts ":h" opt; do
|
|
case ${opt} in
|
|
h )
|
|
help
|
|
exit 0
|
|
;;
|
|
\? )
|
|
echo "Invalid Option: -$OPTARG" 1>&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
shift $((OPTIND -1))
|
|
|
|
|
|
subcommand=$1; shift
|
|
|
|
case "$subcommand" in
|
|
bitcoin-cli )
|
|
if [ "$BITCOIND_INSTALL" == "on" ]; then
|
|
docker exec -it bitcoind bitcoin-cli \
|
|
-rpcconnect=bitcoind \
|
|
--rpcport=28256 \
|
|
--rpcuser="$BITCOIND_RPC_USER" \
|
|
--rpcpassword="$BITCOIND_RPC_PASSWORD" \
|
|
$1 $2 $3 $4 $5
|
|
else
|
|
echo -e "Command not supported for your setup.\nCause: Your Dojo is using an external bitcoind"
|
|
fi
|
|
;;
|
|
help )
|
|
help
|
|
;;
|
|
clean )
|
|
clean
|
|
;;
|
|
install )
|
|
install "$@"
|
|
;;
|
|
logs )
|
|
module=$1; shift
|
|
numlines=0
|
|
|
|
# Process package options
|
|
while getopts ":n:" opt; do
|
|
case ${opt} in
|
|
n )
|
|
numlines=$OPTARG
|
|
;;
|
|
\? )
|
|
echo "Invalid Option: -$OPTARG" 1>&2
|
|
exit 1
|
|
;;
|
|
: )
|
|
echo "Invalid Option: -$OPTARG requires an argument" 1>&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
shift $((OPTIND -1))
|
|
|
|
logs "$module" $numlines
|
|
;;
|
|
onion )
|
|
onion "$@"
|
|
;;
|
|
restart )
|
|
restart
|
|
;;
|
|
start )
|
|
start
|
|
;;
|
|
stop )
|
|
stop
|
|
;;
|
|
uninstall )
|
|
uninstall "$@"
|
|
;;
|
|
upgrade )
|
|
upgrade "$@"
|
|
;;
|
|
version )
|
|
version
|
|
;;
|
|
whirlpool )
|
|
whirlpool "$@"
|
|
;;
|
|
esac
|
|
|