mémorise les options cochées

This commit is contained in:
Cédric Abonnel 2025-03-11 20:47:40 +01:00
parent f6087a5e0f
commit 1d7cb2eb15
1 changed files with 27 additions and 4 deletions

View File

@ -1,8 +1,9 @@
#!/bin/bash
# Définition du dépôt et du fichier contenant la liste des dossiers
# Définition du dépôt et des fichiers de configuration
REPO_URL="https://git.abonnel.fr/cedricAbonnel/notes-techniques/raw/branch/main/scripts"
DIR_LIST_FILE=".directories.txt"
SELECTED_DIRS_FILE=".selected_dirs.txt"
MANDATORY_DIR="common"
# Télécharger la liste des dossiers disponibles
@ -26,13 +27,24 @@ if [ ${#AVAILABLE_DIRS[@]} -eq 0 ]; then
exit 1
fi
# Charger les dossiers précédemment sélectionnés
if [ -f "$SELECTED_DIRS_FILE" ]; then
mapfile -t PREVIOUS_SELECTION < "$SELECTED_DIRS_FILE"
else
PREVIOUS_SELECTION=()
fi
# Construire la liste pour whiptail
CHOICES=()
for dir in "${AVAILABLE_DIRS[@]}"; do
if [ "$dir" == "$MANDATORY_DIR" ]; then
continue # Ne pas inclure le dossier obligatoire dans le choix
fi
CHOICES+=("$dir" "" OFF)
if [[ " ${PREVIOUS_SELECTION[*]} " =~ " $dir " ]]; then
CHOICES+=("$dir" "" ON)
else
CHOICES+=("$dir" "" OFF)
fi
done
# Affichage du menu de sélection avec whiptail
@ -46,9 +58,20 @@ if [ $? -ne 0 ]; then
exit 1
fi
# Ajouter le dossier obligatoire
# Convertir la sélection en tableau
SELECTED_DIRS_ARRAY=("$MANDATORY_DIR" $(echo "$SELECTED_DIRS" | tr -d '"'))
# Enregistrer la sélection actuelle
echo "${SELECTED_DIRS_ARRAY[@]}" > "$SELECTED_DIRS_FILE"
# Identifier les dossiers à supprimer (ceux qui ne sont plus sélectionnés)
for dir in "${PREVIOUS_SELECTION[@]}"; do
if [[ ! " ${SELECTED_DIRS_ARRAY[*]} " =~ " $dir " ]]; then
echo "🗑 Suppression du dossier $dir..."
rm -rf "$dir"
fi
done
# Télécharger ou mettre à jour les fichiers pour chaque dossier sélectionné
for TARGET_DIR in "${SELECTED_DIRS_ARRAY[@]}"; do
LIST_FILE=".list_files.txt"
@ -98,4 +121,4 @@ done
# Nettoyage
rm -rf "$TMP_DIR"
echo "🚀 Tous les scripts sélectionnés ont été mis à jour et sont exécutables."
echo "🚀 Tous les scripts sélectionnés ont été mis à jour et