mémorise les options cochées
This commit is contained in:
parent
f6087a5e0f
commit
1d7cb2eb15
scripts
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue