#!/bin/bash
#
# do_compose : Crée un dossier et un docker-compose dans /home/docker/
# Usage : do_compose nom_du_rep

# ===================== CONFIG =====================
BASE_DIR="/home/docker"     # Répertoire racine
EDITOR="nano"               # Editeur (nano, vim, etc.)
DEFAULT_EXT="yaml"          # Extension par défaut : yaml ou yml
AUTO_CD=true                # true = rester dans le dossier après édition
# ===================================================

# Vérification argument
if [ -z "$1" ]; then
    echo "❌ Utilisation : $0 nom_du_rep"
    exit 1
fi

NAME="$1"
TARGET_DIR="${BASE_DIR}/${NAME}"

# Si dossier existe déjà
if [ -d "$TARGET_DIR" ]; then
    echo "⚠️  Le répertoire '$TARGET_DIR' existe déjà."
    echo "📂 Contenu :"
    ls -lh --color=auto "$TARGET_DIR"

    # Vérifie si un docker-compose existe
    if [ -f "${TARGET_DIR}/docker-compose.yaml" ] || [ -f "${TARGET_DIR}/docker-compose.yml" ]; then
        echo "⚠️  Un fichier docker-compose existe déjà ici."
    fi

    # Demande à l'utilisateur s'il veut continuer
    read -rp "❓ Continuer quand même ? (o/n) : " REP
    if [[ ! "$REP" =~ ^[oOyY]$ ]]; then
        echo "❌ Opération annulée."
        exit 0
    fi
else
    mkdir -p "$TARGET_DIR" || { echo "❌ Impossible de créer $TARGET_DIR"; exit 1; }
    echo "📁 Répertoire '$TARGET_DIR' créé."
fi

# Nom du fichier compose
COMPOSE_FILE="${TARGET_DIR}/docker-compose.${DEFAULT_EXT}"

# Création du fichier si inexistant
if [ -f "$COMPOSE_FILE" ]; then
    echo "⚠️  Le fichier $COMPOSE_FILE existe déjà."
else
    touch "$COMPOSE_FILE" || { echo "❌ Impossible de créer $COMPOSE_FILE"; exit 1; }
    echo "📝 Fichier $COMPOSE_FILE créé."
fi

# Aller dans le dossier et ouvrir dans l'éditeur
cd "$TARGET_DIR" || { echo "❌ Impossible d'accéder à $TARGET_DIR"; exit 1; }
echo "✏️  Ouverture de $COMPOSE_FILE dans $EDITOR..."
$EDITOR "$COMPOSE_FILE"

# Après fermeture de l'éditeur
if [ "$AUTO_CD" = true ]; then
    exec bash
else
    echo "✅ Fichier édité. Vous êtes toujours dans : $PWD"
fi
