Última actividad 1 month ago

Crée un dossier et un docker-compose.yaml directement en une commande.

Revisión 353b06f7e36c04ba1f8d2f34dc07e8bca4cac4aa

do_compose.sh Sin formato
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 =====================
7BASE_DIR="/home/docker" # Répertoire racine
8EDITOR="nano" # Editeur (nano, vim, etc.)
9DEFAULT_EXT="yaml" # Extension par défaut : yaml ou yml
10AUTO_CD=true # true = rester dans le dossier après édition
11# ===================================================
12
13# Vérification argument
14if [ -z "$1" ]; then
15 echo "❌ Utilisation : $0 nom_du_rep"
16 exit 1
17fi
18
19NAME="$1"
20TARGET_DIR="${BASE_DIR}/${NAME}"
21
22# Si dossier existe déjà
23if [ -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
39else
40 mkdir -p "$TARGET_DIR" || { echo "❌ Impossible de créer $TARGET_DIR"; exit 1; }
41 echo "📁 Répertoire '$TARGET_DIR' créé."
42fi
43
44# Nom du fichier compose
45COMPOSE_FILE="${TARGET_DIR}/docker-compose.${DEFAULT_EXT}"
46
47# Création du fichier si inexistant
48if [ -f "$COMPOSE_FILE" ]; then
49 echo "⚠️ Le fichier $COMPOSE_FILE existe déjà."
50else
51 touch "$COMPOSE_FILE" || { echo "❌ Impossible de créer $COMPOSE_FILE"; exit 1; }
52 echo "📝 Fichier $COMPOSE_FILE créé."
53fi
54
55# Aller dans le dossier et ouvrir dans l'éditeur
56cd "$TARGET_DIR" || { echo "❌ Impossible d'accéder à $TARGET_DIR"; exit 1; }
57echo "✏️ Ouverture de $COMPOSE_FILE dans $EDITOR..."
58$EDITOR "$COMPOSE_FILE"
59
60# Après fermeture de l'éditeur
61if [ "$AUTO_CD" = true ]; then
62 exec bash
63else
64 echo "✅ Fichier édité. Vous êtes toujours dans : $PWD"
65fi
66