Files
ethereum-rpc-docker/get-local-url.sh
2025-01-15 05:44:35 +01:00

48 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
BASEPATH="$(dirname "$0")"
source $BASEPATH/.env
blacklist=()
while IFS= read -r line; do
# Add each line to the array
blacklist+=("$line")
done < "$BASEPATH/path-blacklist.txt"
# Parse Docker Compose file to get all services
services=$(cat $BASEPATH/$1.yml | yaml2json - | jq -r '.services | keys | .[]')
for service in $services; do
labels=($(cat "$BASEPATH/$1.yml" | yaml2json - | jq -r ".services[\"$service\"].labels[]"))
for label in "${labels[@]}"; do
if [[ "$label" == *"stripprefix.prefixes"* ]]; then
path=$(echo "$label" | cut -d "=" -f 2)
break # Stop looping after finding the first match
fi
done
include=true
for word in "${blacklist[@]}"; do
if echo "$path" | grep -qE "$word"; then
include=false
fi
done
if $include; then
# IFS=$'\t' read -r -a labels <<< $(cat "$BASEPATH/$1.yml" | yaml2json | jq -r ".services[\"$service\"].labels[]")
for label in "${labels[@]}"; do
if [[ "$label" == *"loadbalancer.server.port"* ]]; then
port=$(echo "$label" | cut -d "=" -f 2)
echo "$service:$port"
#print("Value after '=' for the first string containing 'loadbalancer.server.port':", port)
break # Stop looping after finding the first match
fi
done
fi
done
#echo "No service found with the specified labels."
exit 1