#!/bin/sh

set -e

container_id() {
  if [ "$#" -le 0 ]; then
    # shellcheck disable=SC2119
    container_id_by_cgroup
  else
    "$DOCKER" inspect --format='{{.Id}}' "$@"
  fi
}

# shellcheck disable=SC2120
container_id_by_cgroup() {
  impl_container_id_by_cgroup "$@" || return "$?"
}

impl_container_id_by_cgroup() {
  file="${1:-/proc/self/cgroup}"

  while IFS= read -r cmd; do
    id="$(echo "$cmd" | sed -n -e 's/[^:]*:[^:]*:.*\/\([0-9a-fA-F]\+\)$/\1/p')"
    if container_id "$id" >/dev/null 2>&1; then
      echo "$id"
      return 0
    fi
  done < "$file"

  return 1
}

DOCKER="${DOCKER:-docker}"

if [ -z "${CONTAINER+x}" ] && [ -n "$DOCKER" ]; then
  CONTAINER="$(container_id "$@")"
fi

echo "$CONTAINER"