#!/bin/sh # This script launches ETH1 clients for Rocket Pool's docker stack; only edit if you know what you're doing ;) prep_term() { unset term_child_pid unset term_kill_needed trap 'handle_term' TERM INT } handle_term() { if [ "${term_child_pid}" ]; then kill -TERM "${term_child_pid}" 2>/dev/null else term_kill_needed="yes" fi } wait_term() { term_child_pid=$! if [ "${term_kill_needed}" ]; then kill -TERM "${term_child_pid}" 2>/dev/null fi wait ${term_child_pid} 2>/dev/null trap - TERM INT wait ${term_child_pid} 2>/dev/null } # Geth startup if [ "$CLIENT" = "geth" ]; then CMD="exec /usr/local/bin/geth --goerli --datadir /ethclient/geth \ --metrics --metrics.addr 0.0.0.0 --metrics.port 6060 --pprof.addr 0.0.0.0" if [ ! -z "$ETHSTATS_LABEL" ] && [ ! -z "$ETHSTATS_LOGIN" ]; then CMD="$CMD --ethstats $ETHSTATS_LABEL:$ETHSTATS_LOGIN" fi prep_term eval "$CMD" & wait_term fi # Infura startup if [ "$CLIENT" = "infura" ]; then exec /go/bin/rocketpool-pow-proxy --port 8545 --network goerli --projectId $INFURA_PROJECT_ID fi # Custom provider startup if [ "$CLIENT" = "custom" ]; then exec /go/bin/rocketpool-pow-proxy --port 8545 --providerUrl $PROVIDER_URL fi