github.com/status-im/status-go@v1.1.0/_assets/scripts/gen_config.sh (about) 1 #!/usr/bin/env bash 2 set -euo pipefail 3 4 GIT_ROOT=$(cd "${BASH_SOURCE%/*}" && git rev-parse --show-toplevel) 5 6 # Settings & defaults 7 RPC_HOST="${RPC_HOST:-localhost}" 8 RPC_PORT="${RPC_PORT:-8545}" 9 LISTEN_PORT="${LISTEN_PORT:-30303}" 10 API_MODULES="${API_MODULES:-eth,web3,admin}" 11 MAX_PEERS="${MAX_PEERS:-50}" 12 DAYS_KEPT="${DAYS_KEPT-30}" 13 FLEET_NAME="${FLEET_NAME:-eth.prod}" 14 REGISTER_TOPIC="${REGISTER_TOPIC:-whispermail}" 15 MAIL_PASSWORD="${MAIL_PASSWORD:-status-offline-inbox}" 16 DATA_PATH="${DATA_PATH:-/var/tmp/status-go-mail}" 17 CONFIG_PATH="${CONFIG_PATH:-${DATA_PATH}/config.json}" 18 19 if ! [[ -x $(command -v jq) ]]; then 20 echo "Cannot generate config. jq utility is not installed." >&2 21 exit 1 22 fi 23 24 if [[ -e "${CONFIG_PATH}" ]]; then 25 echo "Config already exits: ${CONFIG_PATH}" >&2 26 echo "Remove it to generate a new one." >&2 27 exit 0 28 fi 29 30 # Assemble the filter for changing the config JSON 31 JQ_FILTER_ARRAY=( 32 ".ListenAddr = \"0.0.0.0:${LISTEN_PORT}\"" 33 ".HTTPEnabled = true" 34 ".HTTPHost = \"${RPC_HOST}\"" 35 ".HTTPPort= ${RPC_PORT}" 36 ".MaxPeers = ${MAX_PEERS}" 37 ".DataDir = \"${DATA_PATH}\"" 38 ".APIModules = \"${API_MODULES}\"" 39 ".RegisterTopics = [\"${REGISTER_TOPIC}\"]" 40 ".WakuConfig.Enabled = true" 41 ".WakuConfig.EnableMailServer = true" 42 ".WakuConfig.DataDir = \"${DATA_PATH}/waku\"" 43 ".WakuConfig.MailServerPassword = \"${MAIL_PASSWORD}\"" 44 ".WakuConfig.MailServerDataRetention = ${DAYS_KEPT}" 45 ) 46 47 JQ_FILTER=$(printf " | %s" "${JQ_FILTER_ARRAY[@]}") 48 49 # make sure config destination exists 50 mkdir -p "${DATA_PATH}" 51 52 echo "Generating config at: ${CONFIG_PATH}" 53 54 cat "${GIT_ROOT}/config/cli/fleet-${FLEET_NAME}.json" \ 55 | jq "${JQ_FILTER:3}" > "${CONFIG_PATH}"