#!/bin/sh

if [ "$1" = "docker-cli-plugin-metadata" ]; then
cat << HERE
{
     "SchemaVersion": "0.1.0",
     "Vendor": "Thek4n",
     "Version": "0.1.0",
     "ShortDescription": "Show containers ip addresses"
}
HERE
exit
fi

usage() {
cat <<EOF
Usage: docker ips

Show containers ip addresses
EOF
}

shift

if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
    usage
    exit 0
fi

set -e


(
    printf "CONTAINER NAME;IMAGE;IP\n"
    for container in $(docker ps -q | tr '\n' ' ')
    do
        ip="$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$container" 2>/dev/null)"
        container_name="$(docker inspect --format='{{.Name}}' "$container" 2>/dev/null)"
        image_name="$(docker inspect --format='{{.Config.Image}}' "$container" 2>/dev/null)"

        printf "%s;%s;%s\n" "${container_name#/}" "${image_name}" "${ip}"
    done
) | column -t -s ";"

exit 0