#!/usr/bin/env bash # Copyright (c) 2020-2021 Status Research & Development GmbH. Licensed under # either of: # - Apache License, version 2.0 # - MIT license # at your option. This file may not be copied, modified, or distributed except # according to those terms. set -e cd "$(dirname $0)/.." NBC_BINARY=$1 shift NETWORK=$1 shift if [[ "$1" == "-h" || "$1" == "--help" ]]; then cat <<HELP All supplied options will be forwarded to the beacon node executable. Please execute build/$NBC_BINARY --help to get more information. HELP exit 0 fi : ${NODE_ID:=0} : ${DATA_DIR_NAME:="shared_${NETWORK}_${NODE_ID}"} : ${DATA_DIR:="build/data/${DATA_DIR_NAME}"} : ${BASE_P2P_PORT:=9000} : ${BASE_REST_PORT:=5052} # Windows detection if uname | grep -qiE "mingw|msys"; then MAKE="mingw32-make" # This "winpty" wrapper is needed to make Ctrl+C work, on some systems. WINPTY="winpty --" else MAKE="make" WINPTY="" fi if [[ ! -f build/${NBC_BINARY} ]]; then cat << MISSING_BINARY_HELP Please build the beacon node binary by executing the following command: ${MAKE} ${NBC_BINARY} MISSING_BINARY_HELP exit 1 fi WEB3_URL_ARG="" if [[ "$WEB3_URL" != "" ]]; then WEB3_URL_ARG="--web3-url=${WEB3_URL}" fi # Allow the binary to receive signals directly. exec ${WINPTY} build/${NBC_BINARY} \ --network=${NETWORK} \ --data-dir="${DATA_DIR}" \ --tcp-port=$(( ${BASE_P2P_PORT} + ${NODE_ID} )) \ --udp-port=$(( ${BASE_P2P_PORT} + ${NODE_ID} )) \ --rest \ --rest-port=$(( ${BASE_REST_PORT} + ${NODE_ID} )) \ --metrics \ ${WEB3_URL_ARG} ${EXTRA_ARGS} \ "$@"