Refactor project documentation and add --check mode
Rebrand from "Docker Scripts" to "Docker Stack Template" and restructure the README as a step-by-step guide. Add `--check` option to `setup.sh` for validating system prerequisites with configurable `CMD_DEPEND`.
This commit is contained in:
@@ -47,6 +47,7 @@ usage() {
|
||||
Usage: $0 [OPTIONS]
|
||||
|
||||
Options :
|
||||
--check Vérifier les prérequis uniquement (sans installer)
|
||||
--force Installation sans confirmation
|
||||
--update Mettre à jour les scripts existants (git pull)
|
||||
--dry-run Affiche ce qui serait fait sans rien installer
|
||||
@@ -56,19 +57,26 @@ Variables d'environnement :
|
||||
GIT_REPO URL du dépôt Git (défaut: $GIT_REPO)
|
||||
SCRIPTS_DIR Dossier d'installation (défaut: /opt/docker-scripts)
|
||||
BRANCH Branche Git à utiliser (défaut: main)
|
||||
CMD_DEPEND Liste des prérequis (défaut: git,docker,curl,tar,gzip,crontab)
|
||||
EOF
|
||||
exit 0
|
||||
}
|
||||
|
||||
# ─── Vérification des prérequis système ─────────────────────────────────────
|
||||
check_system_prerequisites() {
|
||||
step "Étape 1/6 : Vérification des prérequis système"
|
||||
step "Vérification des prérequis système"
|
||||
|
||||
local missing=0
|
||||
|
||||
info "Vérification des commandes requises..."
|
||||
# Lire la liste depuis la configuration (défaut: git,docker,curl,tar,gzip,crontab)
|
||||
CMD_DEPEND="${CMD_DEPEND:-git,docker,curl,tar,gzip,crontab}"
|
||||
IFS=',' read -ra CMDS <<< "$CMD_DEPEND"
|
||||
|
||||
for cmd in git docker curl tar gzip crontab; do
|
||||
info "Vérification des commandes requises (CMD_DEPEND=$CMD_DEPEND)..."
|
||||
|
||||
for cmd in "${CMDS[@]}"; do
|
||||
# Trim whitespace
|
||||
cmd="$(echo "$cmd" | xargs)"
|
||||
if command -v "$cmd" &>/dev/null; then
|
||||
local version=""
|
||||
case "$cmd" in
|
||||
@@ -83,7 +91,7 @@ check_system_prerequisites() {
|
||||
fi
|
||||
done
|
||||
|
||||
# Vérifier docker compose
|
||||
# Vérifier docker compose (toujours pertinent, pas dans CMD_DEPEND)
|
||||
if docker compose version &>/dev/null; then
|
||||
ok "docker compose (plugin)"
|
||||
elif command -v docker-compose &>/dev/null; then
|
||||
@@ -103,7 +111,7 @@ check_system_prerequisites() {
|
||||
if [[ $missing -gt 0 ]]; then
|
||||
echo ""
|
||||
err "$missing prérequis manquants. Installez-les avant de continuer."
|
||||
exit 1
|
||||
return 1
|
||||
fi
|
||||
|
||||
return 0
|
||||
@@ -364,9 +372,11 @@ do_update() {
|
||||
FORCE=false
|
||||
DRY_RUN=false
|
||||
UPDATE=false
|
||||
CHECK=false
|
||||
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--check) CHECK=true ;;
|
||||
--force) FORCE=true ;;
|
||||
--dry-run) DRY_RUN=true ;;
|
||||
--update) UPDATE=true ;;
|
||||
@@ -385,6 +395,26 @@ info "Dépôt Git : $GIT_REPO"
|
||||
info "Branche : $BRANCH"
|
||||
echo ""
|
||||
|
||||
# ─── Mode vérification (--check) ────────────────────────────────────────────
|
||||
if [[ "$CHECK" == "true" ]]; then
|
||||
echo ""
|
||||
echo "🔍 VÉRIFICATION DES PRÉREQUIS"
|
||||
echo ""
|
||||
if check_system_prerequisites; then
|
||||
echo ""
|
||||
ok "Tous les prérequis sont satisfaits. Vous pouvez lancer l'installation :"
|
||||
echo ""
|
||||
echo " bash $0"
|
||||
echo " bash $0 --force (sans confirmation)"
|
||||
echo ""
|
||||
exit 0
|
||||
else
|
||||
echo ""
|
||||
err "Corrigez les prérequis manquants avant de lancer l'installation."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# ─── Mode mise à jour ──────────────────────────────────────────────────────
|
||||
if [[ "$UPDATE" == "true" ]]; then
|
||||
do_update
|
||||
@@ -396,7 +426,7 @@ if [[ "$DRY_RUN" == "true" ]]; then
|
||||
echo ""
|
||||
echo "Actions qui seraient exécutées :"
|
||||
echo ""
|
||||
echo " 1. Vérifier les prérequis (git, docker, curl, tar, gzip, crontab)"
|
||||
echo " 1. Vérifier les prérequis (CMD_DEPEND=${CMD_DEPEND:-git,docker,curl,tar,gzip,crontab})"
|
||||
echo " 2. Cloner/MàJ $GIT_REPO → $SCRIPTS_DIR"
|
||||
echo " 3. Rendre les scripts exécutables"
|
||||
echo " 4. Créer les dossiers de logs"
|
||||
|
||||
Reference in New Issue
Block a user