#!/usr/bin/sh

mode="once"
if [ "$1" = "-w" ]; then
  mode="wait"; shift
fi

container_name="$1"; shift

container_ip_addr=""

sleep_interval='0.1'
if [ "${mode}" = "wait" ]; then
  while :; do
    container_ip_addr=$(command docker inspect --format '{{.NetworkSettings.IPAddress}}' "${container_name}" 2>/dev/null)
    if [ -n "${container_ip_addr}" ]; then
      break
    fi
    sleep "${sleep_interval}"
    sleep_interval=$(echo "((${sleep_interval} * 2) % 10) + 0.1" | bc)
  done
else
  container_ip_addr=$(command docker inspect --format '{{.NetworkSettings.IPAddress}}' "${container_name}" 2>/dev/null)
fi

if [ -n "${container_ip_addr}" ]; then
  echo "${container_ip_addr}"
else
  exit 1
fi
