#!/bin/bash
# Docker Cleanup-Skript
# Räumt nicht verwendete Docker-Images, Container, Volumes und Build-Cache auf

set -e

echo "🧹 Docker Cleanup..."
echo ""

# Zeige aktuellen Speicherverbrauch
echo "📊 Aktueller Docker-Speicherverbrauch:"
docker system df
echo ""

# Frage nach Bestätigung (falls interaktiv)
if [ -t 0 ]; then
    echo "⚠️  Dies wird folgende Ressourcen entfernen:"
    echo "   - Alle nicht verwendeten Images"
    echo "   - Alle gestoppten Container"
    echo "   - Alle nicht verwendeten Netzwerke"
    echo "   - Build-Cache"
    echo ""
    echo "Möchtest du fortfahren? (j/n)"
    read -r response
    if [ "$response" != "j" ] && [ "$response" != "J" ]; then
        echo "❌ Abgebrochen."
        exit 0
    fi
fi

# 1. Entferne gestoppte Container
echo "🗑️  Entferne gestoppte Container..."
STOPPED_CONTAINERS=$(docker ps -a -q -f status=exited | wc -l)
if [ "$STOPPED_CONTAINERS" -gt 0 ]; then
    docker container prune -f
    echo "✅ Gestoppte Container entfernt"
else
    echo "   Keine gestoppten Container gefunden"
fi
echo ""

# 2. Entferne nicht verwendete Images
echo "🗑️  Entferne nicht verwendete Images..."
docker image prune -a -f
echo "✅ Nicht verwendete Images entfernt"
echo ""

# 3. Entferne nicht verwendete Netzwerke
echo "🗑️  Entferne nicht verwendete Netzwerke..."
docker network prune -f
echo "✅ Nicht verwendete Netzwerke entfernt"
echo ""

# 4. Entferne Build-Cache (optional, kann lange dauern)
echo "🗑️  Entferne Build-Cache..."
docker builder prune -f
echo "✅ Build-Cache entfernt"
echo ""

# Zeige neuen Speicherverbrauch
echo "📊 Neuer Docker-Speicherverbrauch:"
docker system df
echo ""

# Zeige verfügbaren Speicherplatz
echo "💾 Verfügbarer Speicherplatz:"
df -h / | tail -1 | awk '{print "   Gesamt: " $2 ", Verfügbar: " $4 ", Belegt: " $5}'
echo ""

echo "✅ Cleanup abgeschlossen!"

