#!/bin/bash
CID=$1
CNAME=$2

echo "=== $CNAME ($CID) ==="

# Check if container is running
STATUS=$(docker inspect --format '{{.State.Status}}' "$CID" 2>/dev/null)
if [ "$STATUS" != "running" ]; then
    echo "  [SKIP] Container not running"
    return
fi

# 1. Logs size
LOG_PATH=$(docker inspect --format='{{.LogPath}}' "$CID" 2>/dev/null)
LOG_SIZE=0
if [ -n "$LOG_PATH" ] && [ -f "$LOG_PATH" ]; then
    LOG_SIZE=$(du -sb "$LOG_PATH" 2>/dev/null | awk '{print $1}')
fi

# 2. Package manager caches inside container
APT_CACHE=$(docker exec "$CID" du -sb /var/cache/apt 2>/dev/null | awk '{print $1}')
APK_CACHE=$(docker exec "$CID" du -sb /var/cache/apk 2>/dev/null | awk '{print $1}')
YUM_CACHE=$(docker exec "$CID" du -sb /var/cache/yum 2>/dev/null | awk '{print $1}')
DNF_CACHE=$(docker exec "$CID" du -sb /var/cache/dnf 2>/dev/null | awk '{print $1}')
PIP_CACHE=$(docker exec "$CID" du -sb /root/.cache/pip 2>/dev/null | awk '{print $1}')
NPM_CACHE=$(docker exec "$CID" du -sb /root/.npm 2>/dev/null | awk '{print $1}')
YARN_CACHE=$(docker exec "$CID" du -sb /usr/local/share/.cache/yarn 2>/dev/null | awk '{print $1}')

# 3. Temp files
TMP_SIZE=$(docker exec "$CID" du -sb /tmp 2>/dev/null | awk '{print $1}')
VAR_TMP=$(docker exec "$CID" du -sb /var/tmp 2>/dev/null | awk '{print $1}')

# 4. Log files inside container
VAR_LOG=$(docker exec "$CID" du -sb /var/log 2>/dev/null | awk '{print $1}')

# 5. Core dumps
CORE_DUMPS=$(docker exec "$CID" find / -maxdepth 3 -name "core" -o -name "core.*" 2>/dev/null | head -5)
CORE_SIZE=0
if [ -n "$CORE_DUMPS" ]; then
    CORE_SIZE=$(docker exec "$CID" du -sbc $CORE_DUMPS 2>/dev/null | tail -1 | awk '{print $1}')
fi

# Sum up
APT_CACHE=${APT_CACHE:-0}
APK_CACHE=${APK_CACHE:-0}
YUM_CACHE=${YUM_CACHE:-0}
DNF_CACHE=${DNF_CACHE:-0}
PIP_CACHE=${PIP_CACHE:-0}
NPM_CACHE=${NPM_CACHE:-0}
YARN_CACHE=${YARN_CACHE:-0}
TMP_SIZE=${TMP_SIZE:-0}
VAR_TMP=${VAR_TMP:-0}
VAR_LOG=${VAR_LOG:-0}
LOG_SIZE=${LOG_SIZE:-0}
CORE_SIZE=${CORE_SIZE:-0}

TOTAL=$((APT_CACHE + APK_CACHE + YUM_CACHE + DNF_CACHE + PIP_CACHE + NPM_CACHE + YARN_CACHE + TMP_SIZE + VAR_TMP + VAR_LOG + LOG_SIZE + CORE_SIZE))

# Print details (only non-zero)
[ "$LOG_SIZE" -gt 0 ] 2>/dev/null && echo "  Docker logs:      $(numfmt --to=iec $LOG_SIZE)"
[ "$APT_CACHE" -gt 0 ] 2>/dev/null && echo "  apt cache:         $(numfmt --to=iec $APT_CACHE)"
[ "$APK_CACHE" -gt 0 ] 2>/dev/null && echo "  apk cache:         $(numfmt --to=iec $APK_CACHE)"
[ "$YUM_CACHE" -gt 0 ] 2>/dev/null && echo "  yum cache:         $(numfmt --to=iec $YUM_CACHE)"
[ "$DNF_CACHE" -gt 0 ] 2>/dev/null && echo "  dnf cache:         $(numfmt --to=iec $DNF_CACHE)"
[ "$PIP_CACHE" -gt 0 ] 2>/dev/null && echo "  pip cache:         $(numfmt --to=iec $PIP_CACHE)"
[ "$NPM_CACHE" -gt 0 ] 2>/dev/null && echo "  npm cache:         $(numfmt --to=iec $NPM_CACHE)"
[ "$YARN_CACHE" -gt 0 ] 2>/dev/null && echo "  yarn cache:        $(numfmt --to=iec $YARN_CACHE)"
[ "$TMP_SIZE" -gt 1000 ] 2>/dev/null && echo "  /tmp:              $(numfmt --to=iec $TMP_SIZE)"
[ "$VAR_TMP" -gt 1000 ] 2>/dev/null && echo "  /var/tmp:          $(numfmt --to=iec $VAR_TMP)"
[ "$VAR_LOG" -gt 1000 ] 2>/dev/null && echo "  /var/log:          $(numfmt --to=iec $VAR_LOG)"
[ "$CORE_SIZE" -gt 0 ] 2>/dev/null && echo "  core dumps:        $(numfmt --to=iec $CORE_SIZE)"
echo "  ---"
echo "  TOTAL RECUPERABLE: $(numfmt --to=iec $TOTAL)"
echo ""
