#!/bin/bash

if [ “$1” = “-w” ]; then

wait_for_running=1; shift

fi

declare -A running_containers

while :; do

running_containers=()
link_args=""
missed_args=0

for running_container_id in $(docker ps -q); do
  running_container_name=$(docker inspect -f '{{.Name}}' ${running_container_id})
  running_container_service_name=$(echo "${running_container_name}" | sed 's/\///g' | sed 's/-i/ /g' | cut -d' ' -f 1)
  running_container_image=$(docker inspect -f '{{.Config.Image}}' ${running_container_id} | tr ':' ' ' | awk '{print $1;}' | tr '/' ' ' | awk '{print $NF;}')
  running_containers[${running_container_service_name}]="${running_container_name}"
done

for dep_name in $@; do
  dep_container=${running_containers[${dep_name}]}
  if [ -z "${dep_container}" ]; then
    missed_args=1
  fi
  link_args="${link_args} --link=\"${dep_container}:${dep_name}\""
done

if [ "${missed_args}" -eq 0 ]; then
  break
fi

if [ -z "${wait_for_running}" ]; then
  echo "could not find dependent container!" >&2
  exit 15
fi

sleep 1

done

echo ${link_args}