#!/bin/bash
set -euo pipefail

dns_name=$(jq -r '.dns_name' <&0)

for i in {1..30}; do   # 最多重试 30 次，大约 5 分钟
    ip=$(nslookup "$dns_name" 2>/dev/null | awk '/^Address: / {print $2; exit}')
    if [[ -n "$ip" ]]; then
        echo "Resolved $dns_name -> $ip" >&2
        jq -n --arg ip "$ip" '{"ip":$ip}'
        exit 0
    fi
    echo "[$i] Waiting for DNS resolution of $dns_name ..." >&2
    sleep 10
done

echo "Failed to resolve IP for $dns_name after 5 minutes" >&2
exit 1
