#!/bin/bash

# Afficher un message d'avertissement et demander confirmation
echo "ATTENTION: Ce script va supprimer tous vos conteneurs Docker"
echo "et optionnellement les images, volumes et réseaux."
echo ""
read -p "Voulez-vous continuer? (o/n): " CONFIRMATION

if [[ "$CONFIRMATION" != "o" && "$CONFIRMATION" != "O" ]]; then
    echo "Opération annulée."
    exit 0
fi

echo ""
echo "Arrêt et suppression de tous les conteneurs..."
# Arrêter tous les conteneurs en cours d'exécution
sudo docker stop $(sudo docker ps -aq) 2>/dev/null
# Supprimer tous les conteneurs
sudo docker rm $(sudo docker ps -aq) 2>/dev/null

echo ""
read -p "Voulez-vous aussi supprimer toutes les images Docker? (o/n): " DELETE_IMAGES
if [[ "$DELETE_IMAGES" == "o" || "$DELETE_IMAGES" == "O" ]]; then
    echo "Suppression de toutes les images Docker..."
    sudo docker rmi $(sudo docker images -q) -f 2>/dev/null
fi

echo ""
read -p "Voulez-vous supprimer tous les volumes Docker? (o/n): " DELETE_VOLUMES
if [[ "$DELETE_VOLUMES" == "o" || "$DELETE_VOLUMES" == "O" ]]; then
    echo "Suppression de tous les volumes Docker..."
    sudo docker volume rm $(sudo docker volume ls -q) 2>/dev/null
fi

echo ""
read -p "Voulez-vous supprimer tous les réseaux Docker? (o/n): " DELETE_NETWORKS
if [[ "$DELETE_NETWORKS" == "o" || "$DELETE_NETWORKS" == "O" ]]; then
    echo "Suppression de tous les réseaux Docker (sauf les réseaux par défaut)..."
    sudo docker network rm $(sudo docker network ls -q) 2>/dev/null
fi

echo ""
echo "Nettoyage terminé!"
echo "Statut actuel:"
echo "Conteneurs restants: $(sudo docker ps -aq | wc -w)"
echo "Images restantes: $(sudo docker images -q | wc -w)"
echo "Volumes restants: $(sudo docker volume ls -q | wc -w)"
echo "Réseaux restants: $(sudo docker network ls -q | wc -w)"