#!/bin/bash
# Bu script, tüm dosya sisteminde, verilen domain parametresine göre eşleşen dosya/dizinleri ve
# docker-compose ile çalıştırılan docker projelerini (container, volume, network, imajlar) temizler.
#
# Kullanım:
#   sudo ./remove_domain.sh <domain> <exact|wildcard>
#
# "exact" modu: Tam olarak <domain> ile eşleşen dosya/dizinler.
# "wildcard" modu: <domain> ile biten (ön eki ne olursa olsun) dosya/dizinler.
#
# Örnek:
#   sudo ./remove_domain.sh domainadi.com exact
#   sudo ./remove_domain.sh domainadi.com wildcard

if [ -z "$1" ] || [ -z "$2" ]; then
    echo "Kullanım: $0 <domain> <exact|wildcard>"
    exit 1
fi

domain="$1"
mode="$2"

if [ "$mode" = "exact" ]; then
    search_pattern="$domain"
elif [ "$mode" = "wildcard" ]; then
    search_pattern="*$domain"
else
    echo "Hatalı mod: Lütfen 'exact' veya 'wildcard' modlarından birini kullanın."
    exit 1
fi

echo "Dry-run: '$search_pattern' deseniyle eşleşen tüm dosya ve dizinler listeleniyor..."
sudo find / -depth -name "$search_pattern" -print

echo ""
echo "Dry-run: '$domain' içeren docker-compose.yml dosyaları aranıyor..."
compose_files=$(sudo find / -depth -type f -name "docker-compose.yml" 2>/dev/null | grep "$domain")
if [ -z "$compose_files" ]; then
    echo "Eşleşen docker-compose.yml dosyası bulunamadı."
else
    echo "$compose_files"
fi

echo ""
read -p "Yukarıdaki tüm dosya/dizinleri ve docker projelerini silmek istediğinize emin misiniz? (y/N): " confirm
if [[ "$confirm" =~ ^[Yy]$ ]]; then
    # Docker projelerinin temizlenmesi
    if [ ! -z "$compose_files" ]; then
        echo "Docker projeleri için temizleme işlemi başlatılıyor..."
        echo "$compose_files" | while read -r file; do
            dir=$(dirname "$file")
            echo "Dizin: $dir için docker-compose down çalıştırılıyor..."
            (cd "$dir" && docker-compose down --rmi all -v --remove-orphans)
        done
    fi

    # Dosya ve dizin silme işlemi
    echo "Dosya ve dizin silme işlemi başlatılıyor..."
    sudo find / -depth -name "$search_pattern" -print0 | sudo xargs -0 rm -rf --no-preserve-root
    echo "Tüm '$search_pattern' deseniyle eşleşen dosya/dizinler silindi."
else
    echo "İşlem iptal edildi."
fi
