do_compose.sh
· 1.8 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
# ===================================================
# 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"
| 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 | # =================================================== |
| 11 | |
| 12 | # Vérification argument |
| 13 | if [ -z "$1" ]; then |
| 14 | echo "❌ Utilisation : $0 nom_du_rep" |
| 15 | exit 1 |
| 16 | fi |
| 17 | |
| 18 | NAME="$1" |
| 19 | TARGET_DIR="${BASE_DIR}/${NAME}" |
| 20 | |
| 21 | # Si dossier existe déjà |
| 22 | if [ -d "$TARGET_DIR" ]; then |
| 23 | echo "⚠️ Le répertoire '$TARGET_DIR' existe déjà." |
| 24 | echo "📂 Contenu :" |
| 25 | ls -lh --color=auto "$TARGET_DIR" |
| 26 | |
| 27 | # Vérifie si un docker-compose existe |
| 28 | if [ -f "${TARGET_DIR}/docker-compose.yaml" ] || [ -f "${TARGET_DIR}/docker-compose.yml" ]; then |
| 29 | echo "⚠️ Un fichier docker-compose existe déjà ici." |
| 30 | fi |
| 31 | |
| 32 | # Demande à l'utilisateur s'il veut continuer |
| 33 | read -rp "❓ Continuer quand même ? (o/n) : " REP |
| 34 | if [[ ! "$REP" =~ ^[oOyY]$ ]]; then |
| 35 | echo "❌ Opération annulée." |
| 36 | exit 0 |
| 37 | fi |
| 38 | else |
| 39 | mkdir -p "$TARGET_DIR" || { echo "❌ Impossible de créer $TARGET_DIR"; exit 1; } |
| 40 | echo "📁 Répertoire '$TARGET_DIR' créé." |
| 41 | fi |
| 42 | |
| 43 | # Nom du fichier compose |
| 44 | COMPOSE_FILE="${TARGET_DIR}/docker-compose.${DEFAULT_EXT}" |
| 45 | |
| 46 | # Création du fichier si inexistant |
| 47 | if [ -f "$COMPOSE_FILE" ]; then |
| 48 | echo "⚠️ Le fichier $COMPOSE_FILE existe déjà." |
| 49 | else |
| 50 | touch "$COMPOSE_FILE" || { echo "❌ Impossible de créer $COMPOSE_FILE"; exit 1; } |
| 51 | echo "📝 Fichier $COMPOSE_FILE créé." |
| 52 | fi |
| 53 | |
| 54 | # Aller dans le dossier et ouvrir dans l'éditeur |
| 55 | cd "$TARGET_DIR" || { echo "❌ Impossible d'accéder à $TARGET_DIR"; exit 1; } |
| 56 | echo "✏️ Ouverture de $COMPOSE_FILE dans $EDITOR..." |
| 57 | $EDITOR "$COMPOSE_FILE" |
| 58 |