#!/usr/bin/env bash

PROC_NAME="$1"

if [[ -z "$PROC_NAME" ]]; then
  echo "Usage: $0 <process-name>"
  exit 1
fi

PIDS=$(pgrep -f "$PROC_NAME")

if [[ -z "$PIDS" ]]; then
  echo "No process found matching: $PROC_NAME"
  exit 1
fi

alldockerps=`docker ps --no-trunc --format '{{.ID}} {{.Names}}'`

for PID in $PIDS; do
  CGROUP=$(cat /proc/$PID/cgroup 2>/dev/null)

  # Extract Docker container ID
  CONTAINER_ID=$(echo "$CGROUP" | grep -oE '[0-9a-f]{64}' | head -n1)

  if [[ -z "$CONTAINER_ID" ]]; then
    echo "PID $PID: Not running in a Docker container"
    continue
  fi

  # Get Docker container name
  CONTAINER_NAME=$(echo "$alldockerps" | grep "^$CONTAINER_ID" | awk '{print $2}')

  if [[ -z "$CONTAINER_NAME" ]]; then
    echo "PS $PROC_NAME PID $PID: Container $CONTAINER_ID (not found)"
  else
    echo "PS $PROC_NAME PID $PID → Docker container: $CONTAINER_NAME"
  fi
done
