do_compose.sh
· 2.1 KiB · Bash
Неформатований
#!/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
| 1 | #!/bin/bash |
| 2 | # |
| 3 | # do_compose : Crée un dossier et un docker-compose dans /home/docker/ |
| 4 | # Usage : do_compose nom_du_rep |
| 5 | |
| 6 | # ===================== CONFIG ===================== |
| 7 | BASE_DIR="/home/docker" # Répertoire racine |
| 8 | EDITOR="nano" # Editeur (nano, vim, etc.) |
| 9 | DEFAULT_EXT="yaml" # Extension par défaut : yaml ou yml |
| 10 | AUTO_CD=true # true = rester dans le dossier après édition |
| 11 | # =================================================== |
| 12 | |
| 13 | # Vérification argument |
| 14 | if [ -z "$1" ]; then |
| 15 | echo "❌ Utilisation : $0 nom_du_rep" |
| 16 | exit 1 |
| 17 | fi |
| 18 | |
| 19 | NAME="$1" |
| 20 | TARGET_DIR="${BASE_DIR}/${NAME}" |
| 21 | |
| 22 | # Si dossier existe déjà |
| 23 | if [ -d "$TARGET_DIR" ]; then |
| 24 | echo "⚠️ Le répertoire '$TARGET_DIR' existe déjà." |
| 25 | echo "📂 Contenu :" |
| 26 | ls -lh --color=auto "$TARGET_DIR" |
| 27 | |
| 28 | # Vérifie si un docker-compose existe |
| 29 | if [ -f "${TARGET_DIR}/docker-compose.yaml" ] || [ -f "${TARGET_DIR}/docker-compose.yml" ]; then |
| 30 | echo "⚠️ Un fichier docker-compose existe déjà ici." |
| 31 | fi |
| 32 | |
| 33 | # Demande à l'utilisateur s'il veut continuer |
| 34 | read -rp "❓ Continuer quand même ? (o/n) : " REP |
| 35 | if [[ ! "$REP" =~ ^[oOyY]$ ]]; then |
| 36 | echo "❌ Opération annulée." |
| 37 | exit 0 |
| 38 | fi |
| 39 | else |
| 40 | mkdir -p "$TARGET_DIR" || { echo "❌ Impossible de créer $TARGET_DIR"; exit 1; } |
| 41 | echo "📁 Répertoire '$TARGET_DIR' créé." |
| 42 | fi |
| 43 | |
| 44 | # Nom du fichier compose |
| 45 | COMPOSE_FILE="${TARGET_DIR}/docker-compose.${DEFAULT_EXT}" |
| 46 | |
| 47 | # Création du fichier si inexistant |
| 48 | if [ -f "$COMPOSE_FILE" ]; then |
| 49 | echo "⚠️ Le fichier $COMPOSE_FILE existe déjà." |
| 50 | else |
| 51 | touch "$COMPOSE_FILE" || { echo "❌ Impossible de créer $COMPOSE_FILE"; exit 1; } |
| 52 | echo "📝 Fichier $COMPOSE_FILE créé." |
| 53 | fi |
| 54 | |
| 55 | # Aller dans le dossier et ouvrir dans l'éditeur |
| 56 | cd "$TARGET_DIR" || { echo "❌ Impossible d'accéder à $TARGET_DIR"; exit 1; } |
| 57 | echo "✏️ Ouverture de $COMPOSE_FILE dans $EDITOR..." |
| 58 | $EDITOR "$COMPOSE_FILE" |
| 59 | |
| 60 | # Après fermeture de l'éditeur |
| 61 | if [ "$AUTO_CD" = true ]; then |
| 62 | exec bash |
| 63 | else |
| 64 | echo "✅ Fichier édité. Vous êtes toujours dans : $PWD" |
| 65 | fi |
| 66 |