#!/usr/bin/env bash # Fix remaining hardcoded 192.168.11.x - skip when already in ${VAR:-ip} fallback # PRUNE: Excludes scripts/archive (historical; not in operational runpath) # Usage: ./scripts/fix-remaining-hardcoded-ips.sh [--include-archive] set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" # Perl: replace IP only when NOT inside ${VAR:-ip} (i.e. not followed by }) # (?/dev/null || true } # Ensure config has vars CONF="${PROJECT_ROOT}/config/ip-addresses.conf" for v in IP_OMADA IP_MIM_WEB DB_HOST IP_NPMPLUS_ETH0 RPC_ALLTRA_1 IP_DBIS_FRONTEND IP_BESU_SENTRY IP_DBIS_API IP_DBIS_API_2 IP_FIREFLY IP_FIREFLY_2; do grep -q "^${v}=" "$CONF" 2>/dev/null || true done # Exclude archive unless --include-archive INCLUDE_ARCHIVE=false [[ "${1:-}" == "--include-archive" ]] && INCLUDE_ARCHIVE=true FIND_OPTS=(-name "*.sh" -type f ! -name "*.bak") $INCLUDE_ARCHIVE || FIND_OPTS+=(! -path "*/archive/*") count=0 find "$PROJECT_ROOT/scripts" "${FIND_OPTS[@]}" 2>/dev/null | while read -r f; do if grep -q "192\.168\.11\." "$f" 2>/dev/null; then do_fix "$f" count=$((count+1)) fi done echo "Processed scripts. Run again to catch any new occurrences." _remaining=$(grep -r "192\.168\.11\." scripts --include="*.sh" 2>/dev/null | grep -v "\.bak" | grep -v '\${.*192\.168\.11\.') $INCLUDE_ARCHIVE || _remaining=$(echo "$_remaining" | grep -v "scripts/archive") remaining=$(echo "$_remaining" | wc -l) echo "Lines with bare IP in scope (excl. fallbacks): ~$remaining" # Second pass: additional IPs REPLACE2() { local f="$1" sed -i \ -e "s/192\.168\.11\.252/\${RPC_ALI_2:-${RPC_ALI_2:-${RPC_ALI_2:-${RPC_ALI_2:-${RPC_ALI_2:-${RPC_ALI_2:-192.168.11.252}}}}}}/g" \ -e "s/192\.168\.11\.251/\${RPC_ALI_1:-${RPC_ALI_1:-${RPC_ALI_1:-${RPC_ALI_1:-${RPC_ALI_1:-${RPC_ALI_1:-192.168.11.251}}}}}}/g" \ -e "s/192\.168\.11\.242/\${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-${RPC_THIRDWEB_2:-192.168.11.242}}}}}}/g" \ -e "s/192\.168\.11\.241/\${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-${RPC_THIRDWEB_1:-192.168.11.241}}}}}}/g" \ -e "s/192\.168\.11\.236/\${RPC_NODE_236:-${RPC_NODE_236:-${RPC_NODE_236:-${RPC_NODE_236:-${RPC_NODE_236:-${RPC_NODE_236:-192.168.11.236}}}}}}/g" \ -e "s/192\.168\.11\.235/\${RPC_NODE_235:-${RPC_NODE_235:-${RPC_NODE_235:-${RPC_NODE_235:-${RPC_NODE_235:-${RPC_NODE_235:-192.168.11.235}}}}}}/g" \ -e "s/192\.168\.11\.234/\${RPC_NODE_234:-${RPC_NODE_234:-${RPC_NODE_234:-${RPC_NODE_234:-${RPC_NODE_234:-${RPC_NODE_234:-192.168.11.234}}}}}}/g" \ -e "s/192\.168\.11\.233/\${RPC_NODE_233:-${RPC_NODE_233:-${RPC_NODE_233:-${RPC_NODE_233:-${RPC_NODE_233:-${RPC_NODE_233:-192.168.11.233}}}}}}/g" \ -e "s/192\.168\.11\.104/\${IP_VALIDATOR_4:-${IP_VALIDATOR_4:-${IP_VALIDATOR_4:-${IP_VALIDATOR_4:-${IP_VALIDATOR_4:-192.168.11.104}}}}}/g" \ -e "s/192\.168\.11\.103/\${IP_VALIDATOR_3:-${IP_VALIDATOR_3:-${IP_VALIDATOR_3:-${IP_VALIDATOR_3:-${IP_VALIDATOR_3:-192.168.11.103}}}}}/g" \ -e "s/192\.168\.11\.102/\${IP_VALIDATOR_2:-${IP_VALIDATOR_2:-${IP_VALIDATOR_2:-${IP_VALIDATOR_2:-${IP_VALIDATOR_2:-192.168.11.102}}}}}/g" \ -e "s/192\.168\.11\.101/\${IP_VALIDATOR_1:-${IP_VALIDATOR_1:-${IP_VALIDATOR_1:-${IP_VALIDATOR_1:-${IP_VALIDATOR_1:-192.168.11.101}}}}}/g" \ -e "s/192\.168\.11\.100/\${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-${IP_VALIDATOR_0:-192.168.11.100}}}}}/g" \ -e "s/192\.168\.11\.153/\${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-${IP_BESU_RPC_3:-192.168.11.153}}}}}}/g" \ -e "s/192\.168\.11\.152/\${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-${IP_BESU_RPC_2:-192.168.11.152}}}}}}/g" \ -e "s/192\.168\.11\.151/\${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-${IP_BESU_RPC_1:-192.168.11.151}}}}}}/g" \ -e "s/192\.168\.11\.150/\${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-${IP_BESU_RPC_0:-192.168.11.150}}}}}}/g" \ -e "s/192\.168\.11\.51/\${IP_SERVICE_51:-${IP_SERVICE_51:-${IP_SERVICE_51:-${IP_SERVICE_51:-${IP_SERVICE_51:-192.168.11.51}}}}}/g" \ -e "s/192\.168\.11\.50/\${IP_SERVICE_50:-${IP_SERVICE_50:-${IP_SERVICE_50:-${IP_SERVICE_50:-${IP_SERVICE_50:-192.168.11.50}}}}}/g" \ -e "s/192\.168\.11\.36/\${IP_SERVICE_36:-${IP_SERVICE_36:-${IP_SERVICE_36:-${IP_SERVICE_36:-${IP_SERVICE_36:-192.168.11.36}}}}}/g" \ -e "s/192\.168\.11\.35/\${IP_SERVICE_35:-${IP_SERVICE_35:-${IP_SERVICE_35:-${IP_SERVICE_35:-${IP_SERVICE_35:-192.168.11.35}}}}}/g" \ -e "s/192\.168\.11\.21/\${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-${IP_SERVICE_21:-192.168.11.21}}}}}/g" \ -e "s/192\.168\.11\.14/\${IP_DEVICE_14:-${IP_DEVICE_14:-${IP_DEVICE_14:-${IP_DEVICE_14:-${IP_DEVICE_14:-192.168.11.14}}}}}/g" \ -e "s/192\.168\.11\.13/\${IP_SERVICE_13:-${IP_SERVICE_13:-192.168.11.13}}/g" \ -e "s/192\.168\.11\.258/\${RPC_PUTU_2:-192.168.11.204}/g" \ -e "s/192\.168\.11\.257/\${RPC_PUTU_1:-192.168.11.203}/g" \ -e "s/192\.168\.11\.256/\${RPC_LUIS_2:-192.168.11.202}/g" \ -e "s/192\.168\.11\.255/\${RPC_LUIS_1:-${RPC_LUIS_1:-${RPC_LUIS_1:-192.168.11.255}}}/g" \ -e "s/192\.168\.11\.254/\${RPC_ALI_2_ALT:-${RPC_ALI_2_ALT:-${RPC_ALI_2_ALT:-192.168.11.254}}}/g" \ -e "s/192\.168\.11\.253/\${RPC_ALI_1_ALT:-${RPC_ALI_1_ALT:-${RPC_ALI_1_ALT:-192.168.11.253}}}/g" \ -e "s/192\.168\.11\.248/\${IP_RPC_248:-${IP_RPC_248:-${IP_RPC_248:-192.168.11.248}}}/g" \ -e "s/192\.168\.11\.247/\${IP_RPC_247:-${IP_RPC_247:-${IP_RPC_247:-192.168.11.247}}}/g" \ -e "s/192\.168\.11\.246/\${IP_RPC_246:-${IP_RPC_246:-${IP_RPC_246:-192.168.11.246}}}/g" \ -e "s/192\.168\.11\.245/\${IP_RPC_245:-${IP_RPC_245:-${IP_RPC_245:-192.168.11.245}}}/g" \ -e "s/192\.168\.11\.244/\${IP_RPC_244:-${IP_RPC_244:-${IP_RPC_244:-192.168.11.244}}}/g" \ -e "s/192\.168\.11\.243/\${RPC_THIRDWEB_3:-${RPC_THIRDWEB_3:-${RPC_THIRDWEB_3:-192.168.11.243}}}/g" \ -e "s/192\.168\.11\.238/\${IP_RPC_238:-${IP_RPC_238:-${IP_RPC_238:-192.168.11.238}}}/g" \ -e "s/192\.168\.11\.237/\${IP_RPC_237:-${IP_RPC_237:-${IP_RPC_237:-192.168.11.237}}}/g" \ -e "s/192\.168\.11\.204/\${IP_SERVICE_204:-${IP_SERVICE_204:-192.168.11.204}}/g" \ -e "s/192\.168\.11\.203/\${IP_SERVICE_203:-${IP_SERVICE_203:-192.168.11.203}}/g" \ -e "s/192\.168\.11\.202/\${IP_SERVICE_202:-${IP_SERVICE_202:-192.168.11.202}}/g" \ -e "s/192\.168\.11\.200/\${IP_SERVICE_200:-${IP_SERVICE_200:-192.168.11.200}}/g" \ -e "s/192\.168\.11\.174/\${IP_SERVICE_174:-${IP_SERVICE_174:-192.168.11.174}}/g" \ -e "s/192\.168\.11\.173/\${IP_SERVICE_173:-${IP_SERVICE_173:-192.168.11.173}}/g" \ -e "s/192\.168\.11\.172/\${IP_SERVICE_172:-${IP_SERVICE_172:-192.168.11.172}}/g" \ -e "s/192\.168\.11\.68/\${IP_INDY:-${IP_INDY:-192.168.11.68}}/g" \ -e "s/192\.168\.11\.65/\${IP_FABRIC:-${IP_FABRIC:-192.168.11.65}}/g" \ -e "s/192\.168\.11\.64/\${IP_CACTI:-${IP_CACTI:-192.168.11.64}}/g" \ -e "s/192\.168\.11\.58/\${IP_SERVICE_58:-${IP_SERVICE_58:-192.168.11.58}}/g" \ -e "s/192\.168\.11\.57/\${IP_SERVICE_57:-${IP_SERVICE_57:-192.168.11.57}}/g" \ -e "s/192\.168\.11\.56/\${IP_SERVICE_56:-${IP_SERVICE_56:-192.168.11.56}}/g" \ -e "s/192\.168\.11\.55/\${IP_SERVICE_55:-${IP_SERVICE_55:-192.168.11.55}}/g" \ -e "s/192\.168\.11\.54/\${IP_SERVICE_54:-${IP_SERVICE_54:-192.168.11.54}}/g" \ -e "s/192\.168\.11\.52/\${IP_SERVICE_52:-${IP_SERVICE_52:-192.168.11.52}}/g" \ -e "s/192\.168\.11\.49/\${IP_SERVICE_49:-${IP_SERVICE_49:-${IP_SERVICE_49:-192.168.11.49}}}/g" \ -e "s/192\.168\.11\.48/\${IP_ORDER_OPENSEARCH:-${IP_ORDER_OPENSEARCH:-${IP_ORDER_OPENSEARCH:-192.168.11.48}}}/g" \ -e "s/192\.168\.11\.47/\${IP_SERVICE_47:-${IP_SERVICE_47:-${IP_SERVICE_47:-192.168.11.47}}}/g" \ -e "s/192\.168\.11\.46/\${ORDER_REDIS_REPLICA:-${ORDER_REDIS_REPLICA:-${ORDER_REDIS_REPLICA:-192.168.11.46}}}/g" \ -e "s/192\.168\.11\.43/\${IP_SERVICE_43:-${IP_SERVICE_43:-${IP_SERVICE_43:-192.168.11.43}}}/g" \ -e "s/192\.168\.11\.42/\${IP_SERVICE_42:-${IP_SERVICE_42:-${IP_SERVICE_42:-192.168.11.42}}}/g" \ -e "s/192\.168\.11\.41/\${IP_SERVICE_41:-${IP_SERVICE_41:-${IP_SERVICE_41:-192.168.11.41}}}/g" \ -e "s/192\.168\.11\.40/\${IP_SERVICE_40:-${IP_SERVICE_40:-${IP_SERVICE_40:-192.168.11.40}}}/g" \ -e "s/192\.168\.11\.39/\${IP_ORDER_HAPROXY:-${IP_ORDER_HAPROXY:-192.168.11.39}}/g" \ -e "s/192\.168\.11\.34/\${IP_SERVICE_34:-${IP_SERVICE_34:-192.168.11.34}}/g" \ -e "s/192\.168\.11\.33/\${IP_SERVICE_33:-${IP_SERVICE_33:-192.168.11.33}}/g" \ -e "s/192\.168\.11\.32/\${IP_SERVICE_32:-${IP_SERVICE_32:-192.168.11.32}}/g" \ -e "s/192\.168\.11\.31/\${IP_SERVICE_31:-${IP_SERVICE_31:-192.168.11.31}}/g" \ -e "s/192\.168\.11\.29/\${IP_SERVICE_29:-${IP_SERVICE_29:-192.168.11.29}}/g" \ -e "s/192\.168\.11\.25/\${IP_SERVICE_25:-${IP_SERVICE_25:-192.168.11.25}}/g" \ -e "s/192\.168\.11\.24/\${IP_SERVICE_24:-${IP_SERVICE_24:-192.168.11.24}}/g" \ -e "s/192\.168\.11\.23/\${IP_SERVICE_23:-${IP_SERVICE_23:-192.168.11.23}}/g" \ -e "s/192\.168\.11\.22/\${IP_SERVICE_22:-${IP_SERVICE_22:-192.168.11.22}}/g" \ -e "s/192\.168\.11\.19/\${IP_SERVICE_19:-${IP_SERVICE_19:-192.168.11.19}}/g" \ -e "s/192\.168\.11\.18/\${IP_SERVICE_18:-${IP_SERVICE_18:-192.168.11.18}}/g" \ -e "s/192\.168\.11\.16/\${IP_SERVICE_16:-${IP_SERVICE_16:-192.168.11.16}}/g" \ -e "s/192\.168\.11\.15/\${IP_SERVICE_15:-${IP_SERVICE_15:-192.168.11.15}}/g" \ -e "s/192\.168\.11\.4/\${IP_SERVICE_4:-${IP_SERVICE_4:-192.168.11.4}}/g" \ "$f" 2>/dev/null || true } # REPLACE2 disabled - was introducing corrupt ${IP_SERVICE_XX:-192.168.11.XX}N patterns. # Use repair-corrupted-ip-replacements.sh first if you had run old REPLACE2. # Run perl do_fix above; for additional IPs add to do_fix block.